summaryrefslogtreecommitdiff
path: root/srfi/srfi-1.c
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2003-07-28 23:54:39 +0000
committerKevin Ryde <user42@zip.com.au>2003-07-28 23:54:39 +0000
commitde51f5955dbafe5e857bcc4a19171e00c634c6dc (patch)
treea65d9589cc0cbe89aedd859af07ce5019ad13ea6 /srfi/srfi-1.c
parent15d36a34384879f927e3de31b4bd74292d1bb86c (diff)
downloadguile-de51f5955dbafe5e857bcc4a19171e00c634c6dc.tar.gz
(length+): Rewrite using scm_ilength.
Diffstat (limited to 'srfi/srfi-1.c')
-rw-r--r--srfi/srfi-1.c12
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,