From 2d9ba5a9e387de05c43dbcbb928595c5f8eb6d27 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 12 Dec 2018 13:43:47 -0500 Subject: [PATCH] New version of (list?) --- scheme/base.sld | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/scheme/base.sld b/scheme/base.sld index 38a4da51..fff0534f 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -223,6 +223,7 @@ negative? positive? zero? + list? not string>=? string>? @@ -706,16 +707,11 @@ (define (newline . port) (apply write-char (cons #\newline port))) (define (not x) (if x #f #t)) - (define (list? o) - (define (_list? obj) - (cond - ((null? obj) #t) - ((pair? obj) - (_list? (cdr obj))) - (else #f))) - (if (Cyc-has-cycle? o) - #t - (_list? o))) + (define-c list? + "(void *data, int argc, closure _, object k, object o)" + " return_closcall1(data, k, Cyc_is_list(o));" + "(void *data, object ptr, object o)" + " return Cyc_is_list(o);") (define (zero? n) (= n 0)) (define (positive? n) (> n 0)) (define (negative? n) (< n 0))