Previous: layout bitfid immediate chars, Up: layout bitfid immediate [Contents][Index]
The representation in machine words uses the least significant byte:
00000000 00000000 00000000 00001110 value=() C_SCHEME_END_OF_LIST 00000000 00000000 00000000 00011110 value=(void) C_SCHEME_UNDEFINED 00000000 00000000 00000000 00101110 unbound-var C_SCHEME_UNBOUND 00000000 00000000 00000000 00111110 value=#!eof C_SCHEME_END_OF_FILE
This list is exhaustive: currently there are only four special objects. There is a lot of room for adding other special objects, if that ever becomes necessary.
The “unbound variable” representation cannot be captured by a program: when it is evaluated, it immediately raises an exception; this is its intended function.
The constants: C_SCHEME_END_OF_LIST
, C_SCHEME_UNDEFINED
, C_SCHEME_UNBOUND
,
C_SCHEME_END_OF_FILE
are preprocessor symbols defined at the C language level, in the header
file chicken.h.
Previous: layout bitfid immediate chars, Up: layout bitfid immediate [Contents][Index]