diff options
author | Kevin Ryde <user42@zip.com.au> | 2003-07-28 23:54:39 +0000 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2003-07-28 23:54:39 +0000 |
commit | de51f5955dbafe5e857bcc4a19171e00c634c6dc (patch) | |
tree | a65d9589cc0cbe89aedd859af07ce5019ad13ea6 /srfi/srfi-1.c | |
parent | 15d36a34384879f927e3de31b4bd74292d1bb86c (diff) | |
download | guile-de51f5955dbafe5e857bcc4a19171e00c634c6dc.tar.gz |
(length+): Rewrite using scm_ilength.
Diffstat (limited to 'srfi/srfi-1.c')
-rw-r--r-- | srfi/srfi-1.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/srfi/srfi-1.c b/srfi/srfi-1.c index db35eb92b..27f7dd12d 100644 --- a/srfi/srfi-1.c +++ b/srfi/srfi-1.c @@ -370,6 +370,18 @@ SCM_DEFINE (scm_srfi1_delete_duplicates_x, "delete-duplicates!", 1, 1, 0, #undef FUNC_NAME +SCM_DEFINE (scm_srfi1_length_plus, "length+", 1, 0, 0, + (SCM lst), + "Return the length of @var{lst}, or @code{#f} if @var{lst} is\n" + "circular.") +#define FUNC_NAME s_scm_srfi1_length_plus +{ + long len = scm_ilength (lst); + return (len >= 0 ? SCM_MAKINUM (len) : SCM_BOOL_F); +} +#undef FUNC_NAME + + /* Typechecking for multi-argument MAP and FOR-EACH. Verify that each element of the vector ARGV, except for the first, |