From de51f5955dbafe5e857bcc4a19171e00c634c6dc Mon Sep 17 00:00:00 2001 From: Kevin Ryde Date: Mon, 28 Jul 2003 23:54:39 +0000 Subject: (length+): Rewrite using scm_ilength. --- srfi/srfi-1.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'srfi/srfi-1.c') 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, -- cgit v1.2.3