Append works; mapcar doesn't; loop isn't even written.

This commit is contained in:
Simon Brooke 2021-08-23 12:35:05 +01:00
parent c63c262b74
commit 6771d6494c
No known key found for this signature in database
GPG key ID: A7A4F18D1D4DF987
10 changed files with 213 additions and 32 deletions

View file

@ -114,12 +114,12 @@
* A loop exit is a special kind of exception which has exactly the same
* payload as an exception.
*/
#define LOOPXTAG "LOOX"
#define LOOPTAG "LOOP"
/**
* The string `LOOX`, considered as an `unsigned int`.
*/
#define LOOPXTV 1481592652
#define LOOPTV 1347374924
/**
* The special cons cell at address {0,0} whose car and cdr both point to
@ -304,9 +304,9 @@
#define lambdap(conspoint) (check_tag(conspoint,LAMBDATV))
/**
* true if `conspoint` points to a loop exit exception, else false.
* true if `conspoint` points to a loop recursion, else false.
*/
#define loopexitp(conspoint) (check_tag(conspoint,LOOPXTV))
#define loopp(conspoint) (check_tag(conspoint,LOOPTV))
/**
* true if `conspoint` points to a special form cell, else false
@ -615,7 +615,7 @@ struct cons_space_object {
*/
struct cons_payload cons;
/**
* if tag == EXCEPTIONTAG || tag == LOOPXTAG
* if tag == EXCEPTIONTAG || tag == LOOPTAG
*/
struct exception_payload exception;
/**
@ -713,6 +713,9 @@ struct cons_pointer make_special( struct cons_pointer src,
struct cons_pointer,
struct cons_pointer ) );
struct cons_pointer make_string_like_thing( wint_t c, struct cons_pointer tail,
uint32_t tag );
struct cons_pointer make_string( wint_t c, struct cons_pointer tail );
struct cons_pointer make_symbol_or_key( wint_t c, struct cons_pointer tail,