a list of arguments is always a proper list. You don't need to test
if it is well formed.
Hereafter is the code of the when primitive.
Some points to note here:
- UNDEFINED is an interpreter constant. It serves to denote
the notion of ``unspecified result'' of .
- Truth and Ntruth are two global constants of the
interpreter which denote respectively the #t and #f Scheme
constants.
Figure
shows a complete implementation of when and unless.
Figure:
Source listing of file when_unless.c
 |