Next: layout intro block, Up: layout intro [Contents][Index]
These are the typical “atomic” values that come up a lot in computations. It is important to represent these as efficiently as possible, so they are packed directly in a ‘C_word’. This includes booleans, the empty list, small integers (these are called fixnums), characters and a few other special values.
Because these values are represented directly by a ‘C_word’, they can be compared in one
instruction: eq?
in Scheme. These values do not need to be heap–allocated: they fit
directly in a register, and can be passed around “by value” in C. This also means they don’t need
to be tracked by the garbage collector!
At a high enough level, these values simply look like this:
#t #f () 42 #\x
Next: layout intro block, Up: layout intro [Contents][Index]