diff --git a/lisp/member.lisp b/lisp/member.lisp index b67a7e3..1e0df38 100644 --- a/lisp/member.lisp +++ b/lisp/member.lisp @@ -1,14 +1,18 @@ -(set! nil? (lambda - (o) - "`(nil? object)`: Return `t` if object is `nil`, else `t`." - (= o nil))) +(set! nil? (lambda (o) (= (type o) "NIL "))) -(set! member? (lambda - (item collection) - "`(member? item collection)`: Return `t` if this `item` is a member of this `collection`, else `nil`." - (cond - ((nil? collection) nil) - ((= item (car collection)) t) - (t (member? item (cdr collection)))))) +(set! CDR (lambda (o) + (print (list "in CDR; o is: " o) *log*) + (let ((r . (cdr o))) + (print (list "; returning: " r) *log*) + (println *log*) + (println *log*) + r))) -;; (member? (type member?) '("LMDA" "NLMD")) +(set! member? + (lambda + (item collection) + (print (list "in member?: " 'item item 'collection collection) *log*)(println *log*) + (cond + ((nil? collection) nil) + ((= item (car collection)) t) + (t (member? item (CDR collection)))))) diff --git a/src/memory/conspage.c b/src/memory/conspage.c index 3d96647..9c6ea20 100644 --- a/src/memory/conspage.c +++ b/src/memory/conspage.c @@ -65,7 +65,11 @@ struct cons_page *conspages[NCONSPAGES]; * that exception would have to have been pre-built. */ void make_cons_page( ) { - struct cons_page *result = malloc( sizeof( struct cons_page ) ); + struct cons_page *result = NULL; + + if ( initialised_cons_pages < NCONSPAGES) { + result = malloc( sizeof( struct cons_page ) ); + } if ( result != NULL ) { conspages[initialised_cons_pages] = result; @@ -116,12 +120,10 @@ void make_cons_page( ) { initialised_cons_pages++; } else { - debug_printf( DEBUG_ALLOC, - L"FATAL: Failed to allocate memory for cons page %d\n", - initialised_cons_pages ); + fwide( stderr, 1 ); + fwprintf( stderr, L"FATAL: Failed to allocate memory for cons page %d\n", initialised_cons_pages ); exit( 1 ); } - } /** diff --git a/unit-tests/memberp.sh b/unit-tests/memberp.sh index a20a8b7..f3a50af 100644 --- a/unit-tests/memberp.sh +++ b/unit-tests/memberp.sh @@ -53,7 +53,7 @@ else fi -expected='nil' +expected='nil'(CDR ) output=`target/psse $1 <