Unlike languages like Java and C which are
statically typed (we describe in the program
text what type each variable is) Scheme is
dynamically typed.
We can test at runtime what particular type of number an atom is:
Unlike many other languages like Java which are
statement-oriented, Scheme
is expression-oriented. That is,
every construct (even if, cond, etc)
return a value. The if-expression returns the
value of the then-expr or the else-expr:
and and or take multiple arguments, evaluate their
results left-to-right until the outcome can be determined
(for or when the first non-false, for and
when the first false is found), and returns the
last value evaluated.