S-expressions are used for both code and data in Lisp. S-expressions were originally intended only as machine representations of human-readable M-expressions, but Lisp programmers soon started using S-expressions as the default notation.
S-expressions can either be single objects such as numbers, Lisp atoms[?] including the special atoms nil and t, or cons pairs[?], written as (x . y). Longer lists are made up of nested cons pairs, for example
(1 . (2 . (3 . nil))) which can also be written as the easier to read and write (1 2 3).
Program code can be written in S-expressions, using prefix notation. An extra piece of syntactic sugar for writing Lisp programs is that the common expression (quote x) can be written with the abbreviation 'x.
Example:
(defun factorial (x)
(cond
((eq x 1) 1)
(t (* x (factorial (- x 1))))
)
)
|
Search Encyclopedia
|
Featured Article
|