10.07.2015 Views

LISP I Programmer's Manual - Software Preservation Group

LISP I Programmer's Manual - Software Preservation Group

LISP I Programmer's Manual - Software Preservation Group

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Subexpressions can be similarly abbreviated. Some examplesof these abbreviations are((AB,c),D) for ((AB- (c*NIL))* (DONIL))((A,B),c,D*E) for ((A* (B-NIL)) (c- (DOE)))Since we regard the expressions with commas as abbreviationsfor those not involving commas, we shall refer to them all as S-expressions.b. Functions of S-expressions and the Expressions That RepresentThemWe now define a class of functions of S-expressions. Theexpressions representing these functions are written in a conventionalfunctional notation. However, in order to clearlydistinguish the expressions representing functions from S-expressions,we shall use sequences of lower-case letters forfunction names and variables ranging over the set of S-expressions.We also use brackets and semicolons, instead of parenthesesand commas, for denoting the application of functionsto their arguments. Thus we writecar[xlcar[cons[ (A-B);x] 1In these M-expressions (meta-expressions) any S-expressions thatoccur stand for themselves.c. The Elementary S-functions and PredicatesWe introduce the following functions and predicates:1. atomatom[x] has the value of T or F, accordingly as x is anatomic symbol or not. Thus

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!