scheme, a dialect of lisp.
The law of Car
The primitive car
is defined only for non-empty lists.The cdr
of any nonempty list is always another list.
The law of Cons
The primitive cons
takes two arguments.The second arugument to cons
must be a list.The result is a list.
The law of Null?
The primitive null?
is defined only for lists.
The law of eq?
The primitive eq?
takes two arguments.Each must be a nonnumeric atom.
The First Commandment
Always ask null?
as the first question in expressing any function.
The Second Commandment
Use cons
to build lists.
The Third Commandment When building a list,describe the first typical element,and then cons it onto the natural recursion.
The Fourth Commandment
Always change at least one argument while recurring.It must be changed to be closer to termination.The changing argument must be tested in the termination condition:when using cdr,test termination with null?
.
The Fifth Commandment When building a value with +,always use 0 for the value of the terminating line,for adding 0 does not change the value of an addition. When building a value with x,always use 1 for the value of the terminating line,for multiplying by 1 doese not change the value of a multiplication. When building a value with cons,always consider () for the value of the terminating line.