By W. Richard Stark

Here is a presentation of LISP that is either functional and theoretical. For the sensible, the syntax of the language, the programming types, and the semantics of computation are conscientiously built. For the theoretical, the algebra of interpreters, the lambda calculus as a origin for LISP, and the algebraic importance of LISP's method of man made intelligence are mentioned. because the name indicates, the publication reaches past the technical aspect of LISP to give colourful purposes, historic reviews and quotations, computational philosophy, outcomes of LISP's unheard of strength, and masses extra. the cloth has been designed to attract quite a few readers, from the intense freshman to the working towards specialist, and from computing device scientists and mathematicians to chemists, engineers, and philosophers.

Show description

Read Online or Download LISP, Lore, and Logic: An Algebraic View of LISP Programming, Foundations, and Applications PDF

Best compilers books

The Definitive Guide to SugarCRM: Better Business Applications (Books for Professionals by Professionals)

SugarCRM is one among if now not the major Open resource CRM answer on the market at five. five million downloads and turning out to be and with approximately 17,000 registered builders and plenty extra clients. this may be the reliable, definitive booklet written via SugarCRM and recommended by means of SugarCRM. additionally, this e-book will be additionally the single SugarCRM developer e-book so one can tackle the platform similar positive aspects due to the fact that SugarCRM five.

Methodologies and Software Engineering for Agent Systems: The Agent-Oriented Software Engineering Handbook

As details applied sciences turn into more and more dispensed and available to bigger variety of humans and as advertisement and executive agencies are challenged to scale their functions and providers to greater marketplace stocks, whereas lowering charges, there's call for for software program methodologies and appli- tions to supply the next positive aspects: Richer program end-to-end performance; relief of human involvement within the layout and deployment of the software program; Flexibility of software program behaviour; and Reuse and composition of current software program purposes and structures in novel or adaptive methods.

Numeric Computation and Statistical Data Analysis on the Java Platform

Numerical computation, wisdom discovery and statistical info research built-in with strong second and 3D pics for visualisation are the foremost subject matters of this booklet. The Python code examples powered by means of the Java platform can simply be reworked to different programming languages, equivalent to Java, Groovy, Ruby and BeanShell.

Extra info for LISP, Lore, and Logic: An Algebraic View of LISP Programming, Foundations, and Applications

Example text

Since the search can be restricted to primes less than one half of n+l, P-SUM will always return a value. Being skeptical of the assertion above, we begin our investigation by searching for a solution to the Boolean equation NIL = P-SUM. * (DEFUN NUMBER-SEARCH (N) (IF ;If (NOT (P-SUM N)) ;if we have found the exception N ;then return it, (NUMBER-SEARCH (+ 2 N)) )) ;else keep looking. ==> NUMBER-SEARCH If NIL = P-SUM(n) has a solution in the even integers greater than 2, then the least solution is the value returned by (NUMBER-SEARCH 4), and we have proved the assertion to be false.

DEFUN IF-AND-ONLY-IF (R S) (AND (IMPLIES R S) (IMPLIES S R» ==> IF-AND-ONLY-IF (IF-AND-ONLY-IF (IMPLIES NIL T) T) ==> T Example 3: An integer-valued step function is defined using a conditional with the arithmetic relation "<" in the first test. 1) ==> 0 IF could have been used in place of COND here. Example 4: A LAMBDA function is of the form (LAMBDA variable-list term). The variables in the variable list include the variables of the term, but they are not necessarily restricted to those of the term.

After such an assignment, we may use function-name in place of the more complicated LAMBDA notation. DEFUN returns function-name as its value. In LISP, most computing is defined in terms of applying functions to arguments. Thus, even when it is the effect-rather than the value-that we are after, a value will be returned. Example 9: LIST2 is not a function in LISP. Thus, we can use it to demonstrate the effect of DEFUN. * * * (LIST2 4 8) ERROR: LIST2 IS AN UNDEFINED FUNCTION (DEFUN LIST2 (X Y) (CONS X (LIST Y))) ==> LIST2 (LIST2 4 8) ==> (4 8) DEFUN adds a new function, called LIST2 and equivalent to (LAMBDA (X Y) (CONS X (LIST Y))), to the currently active copy of LISP.

Download PDF sample

Rated 4.28 of 5 – based on 41 votes