>From ba9be6d0a4f82360d41ccdabe4955824324fc6c8 Mon Sep 17 00:00:00 2001 From: Evan Hanson Date: Wed, 1 Oct 2014 20:39:55 +1300 Subject: [PATCH] Mark circular-list?, dotted-list? and atom? as foldable in types.db --- c-platform.scm | 3 ++- types.db | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/c-platform.scm b/c-platform.scm index e646ef7..c93947c 100644 --- a/c-platform.scm +++ b/c-platform.scm @@ -148,7 +148,8 @@ fpfloor fpceiling fptruncate fpround fpsin fpcos fptan fpasin fpacos fpatan fpatan2 fpexp fpexpt fplog fpsqrt fpabs fpinteger? arithmetic-shift void flush-output - not-pair? atom? null-list? print print* error proper-list? call/cc + not-pair? atom? null-list? dotted-list? circular-list? + print print* error proper-list? call/cc blob-size u8vector->blob/shared s8vector->blob/shared u16vector->blob/shared s16vector->blob/shared u32vector->blob/shared s32vector->blob/shared f32vector->blob/shared f64vector->blob/shared diff --git a/types.db b/types.db index 11527e5..7b513e9 100644 --- a/types.db +++ b/types.db @@ -1216,7 +1216,7 @@ (any? (#(procedure #:pure #:foldable) any? (*) boolean) ((*) (let ((#(tmp) #(1))) '#t))) -(atom? (#(procedure #:pure) atom? (*) boolean) +(atom? (#(procedure #:pure #:foldable) atom? (*) boolean) ((pair) (let ((#(tmp) #(1))) '#f)) (((not (or pair list))) (let ((#(tmp) #(1))) '#t))) @@ -1865,7 +1865,7 @@ (car+cdr (forall (a b) (#(procedure #:clean #:enforce) car+cdr ((pair a b)) a b))) (circular-list (#(procedure #:clean) circular-list (#!rest) list)) -(circular-list? (#(procedure #:clean) circular-list? (*) boolean) +(circular-list? (#(procedure #:clean #:foldable) circular-list? (*) boolean) ((null) (let ((#(tmp) #(1))) '#f))) (concatenate (#(procedure #:clean #:enforce) concatenate ((list-of list)) list)) @@ -1881,7 +1881,7 @@ (delete-duplicates! (forall (a) (#(procedure #:enforce) delete-duplicates! ((list-of a) #!optional (procedure (a *) *)) (list-of a)))) -(dotted-list? (#(procedure #:clean) dotted-list? (*) boolean)) +(dotted-list? (#(procedure #:clean #:foldable) dotted-list? (*) boolean)) (drop (forall (a) (#(procedure #:enforce) drop ((list-of a) fixnum) (list-of a)))) (drop-right (forall (a) (#(procedure #:enforce) drop-right ((list-of a) fixnum) (list-of a)))) (drop-right! (forall (a) (#(procedure #:enforce) drop-right! ((list-of a) fixnum) (list-of a)))) -- 1.7.10.4