4 ms·
Source: http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_e.htm#expression http://www.lispworks.com/documentation/HyperSpec/Body/26_glo... It is int
by kmill 9y ago
Source: http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_e.htm#expression http://www.lispworks.com/documentation/HyperSpec/Body/26_glo...
It is interesting that when people say "everything is an expression," they usually seem to mean that "everything evaluates to a value," as a contrast to the expression/statement dichotomy in most other languages. But (summarizing) as far as Common Lisp is concerned, an "expression" is the object of what one expresses.
Let expression1 mean the syntax class of expressions-with-values (like mathematical expressions) and expression2 be the Common Lisp definition. Then it's "in Lisp, everything is an expression2" and "every form is an expression1." This ambiguity might explain the surprise when realizing Lisp in fact has other syntax classes than expression1s.