Major step forward: equal is now working, and consequently so is assoc.

This commit is contained in:
Simon Brooke 2026-05-06 16:42:18 +01:00
parent 271b7da46a
commit 5e64a33965
11 changed files with 168 additions and 137 deletions

View file

@ -27,7 +27,7 @@
struct pso_pointer lisp_mapcar( struct pso_pointer frame_pointer ) {
struct pso_pointer result = nil;
struct pso4* frame = pointer_to_pso4(frame_pointer);
debug_print( U"Mapcar: ", DEBUG_EVAL, 0 );
debug_print( L"Mapcar: ", DEBUG_EVAL, 0 );
debug_dump_object( frame_pointer, DEBUG_EVAL, 0 );
int i = 0;
@ -38,7 +38,7 @@ struct pso_pointer lisp_mapcar( struct pso_pointer frame_pointer ) {
make_cons( frame_pointer, frame->payload.stack_frame.arg[0],
make_cons( frame_pointer, c_car( c ), nil ) ) );
debug_printf( DEBUG_EVAL, 0, U"Mapcar %d, evaluating ", i );
debug_printf( DEBUG_EVAL, 0, L"Mapcar %d, evaluating ", i );
debug_print_object( expr, DEBUG_EVAL, 0 );
debug_println( DEBUG_EVAL);
@ -50,14 +50,14 @@ struct pso_pointer lisp_mapcar( struct pso_pointer frame_pointer ) {
} else {
result = push_local( frame_pointer, make_cons( frame_pointer, r, result ));
}
debug_printf( DEBUG_EVAL, 0, U"Mapcar %d, result is ", i++ );
debug_printf( DEBUG_EVAL, 0, L"Mapcar %d, result is ", i++ );
debug_print_object( result, DEBUG_EVAL, 0 );
debug_println( DEBUG_EVAL);
}
result = consp( result ) ? c_reverse( frame_pointer, result ) : result;
debug_print( U"Mapcar returning: ", DEBUG_EVAL, 0 );
debug_print( L"Mapcar returning: ", DEBUG_EVAL, 0 );
debug_print_object( result, DEBUG_EVAL, 0 );
debug_println( DEBUG_EVAL );