~ chicken-core (chicken-5) 8afeb2c50f476c229b1b5202dc6e5437f0b6707f
commit 8afeb2c50f476c229b1b5202dc6e5437f0b6707f Author: felix <felix@call-with-current-continuation.org> AuthorDate: Thu Feb 24 08:20:44 2011 -0500 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Thu Feb 24 08:20:44 2011 -0500 types.db work diff --git a/types.db b/types.db index 4e2e4318..21f98787 100644 --- a/types.db +++ b/types.db @@ -86,33 +86,57 @@ (null? (procedure null? (*) boolean) ((null) #t) ((not null) #f)) (list? (procedure list? (*) boolean) (((or null pair list)) #t) (((not (or null pair list))) #f)) - -;;;XXX... (list (procedure list (#!rest) list)) -(length (procedure length (list) fixnum)) +(length (procedure length (list) fixnum) ((list) (##core#inline "C_u_i_length" #(1)))) (list-tail (procedure list-tail (list fixnum) *)) (list-ref (procedure list-ref (list fixnum) *)) (append (procedure append (list #!rest) list)) (reverse (procedure reverse (list) list)) -(memq (procedure memq (* list) *)) ; result type: (or list boolean) ? +(memq (procedure memq (* list) *) ((* list) (##core#inline "C_u_i_memq" #(1) #(2)))) (memv (procedure memv (* list) *)) (member (procedure member (* list #!optional (procedure (* *) *)) *)) -(assq (procedure assq (* list) *)) +(assq (procedure assq (* list) *) ((* list) (##core#inline "C_u_i_assq" #(1) #(2)))) (assv (procedure assv (* list) *)) (assoc (procedure assoc (* list #!optional (procedure (* *) *)) *)) -(symbol? (procedure symbol? (*) boolean)) + +(symbol? (procedure symbol? (*) boolean) + ((symbol) #t) + (((not symbol)) #f)) + (symbol-append (procedure symbol-append (#!rest symbol) symbol)) (symbol->string (procedure symbol->string (symbol) string)) (string->symbol (procedure string->symbol (string) symbol)) -(number? (procedure number? (*) boolean)) + +(number? (procedure number? (*) boolean) + (((or fixnum float number)) #t) + (((not (or fixnum float number)) #f))) + (integer? (procedure integer? (*) boolean) + ((fixnum) #t) ((float) (fpinteger? #(1)))) -(exact? (procedure exact? (*) boolean)) -(real? (procedure real? (*) boolean)) -(complex? (procedure complex? (*) boolean)) -(inexact? (procedure inexact? (*) boolean)) -(rational? (procedure rational? (*) boolean)) -(zero? (procedure zero? (number) boolean)) + +(exact? (procedure exact? (*) boolean) + ((fixnum) #t) + ((float) #f)) + +(real? (procedure real? (*) boolean) + (((or fixnum float number)) #t)) + +(complex? (procedure complex? (*) boolean) + (((or fixnum float number)) #t) + (((not (or fixnum float number))) #f)) + +(inexact? (procedure inexact? (*) boolean) + ((fixnum) #f) + ((float) #t)) + +(rational? (procedure rational? (*) boolean) + ((fixnum) #t)) + +(zero? (procedure zero? (number) boolean) + ((fixnum) (eq? #(1) 0))) + +;;XXX... (odd? (procedure odd? (number) boolean)) (even? (procedure even? (number) boolean)) (positive? (procedure positive? (number) boolean))Trap