Get [Article] The Evolution of Lisp PDF

By Guy L. Steele Jr., Richard P. Gabriel

Show description

Read or Download [Article] The Evolution of Lisp PDF

Best computers books

Maxim D. Peysakhov, Vincent A. Cicirello, William C. Regli's Formal Approaches to Agent-Based Systems: Third PDF

The third Workshop on Formal techniques to Agent-Based platforms (FAABS-III) was once held on the Greenbelt Marriott inn (near NASA Goddard house Flight heart) in April 2004 together with the IEEE machine Society. the 1st FAABS workshop used to be assist in April 2000 and the second one in October 2002. curiosity in agent-based platforms keeps to develop and this can be visible within the wide selection of meetings and journals which are addressing the examine during this zone in addition to the prototype and developmental structures which are getting into use.

Get Apple Training Series: Desktop and Portable Systems PDF

This authoritative, Apple-Certified education path is designed either for execs who aid Apple desktops in addition to Macintosh fanatics who are looking to improve, carrier, or troubleshoot their favourite structures. totally revised, this 3rd version contains Apple's new versions with Intel processors, the MacBook seasoned, Mac mini, and iMac.

Download e-book for kindle: PCI Express Technology 3.0 by Mike Jackson, Ravi Budruk, Joseph Winkles, Don Anderson

"MindShare books are severe within the realizing of advanced technical issues, equivalent to PCI exhibit three. zero structure. a lot of our buyers and companions depend upon those books for the good fortune in their tasks. " Joe Mendolia - vice chairman, LeCroy PCI convey three. zero is the newest new release of the preferred peripheral interface present in nearly each workstation, server, and business laptop.

Additional resources for [Article] The Evolution of Lisp

Sample text

The macro is the most immediate example of a program written in a metalanguage. Because Lisp is its own metalanguage, the power of the entire programming language can be brought to bear on the task of transforming program text. By comparison, the C preprocessor is completely anemic; the macro language consists entirely of substitution and token concatenation. There are conditionals, and one may conditionally define a macro, but a C macro may not expand into such a conditional.

A related line of work allows the programmer to control the expansion process by explicitly passing around and manipulating expander functions [Dybvig, 1986]. All of these were intended as macro facilities for Scheme, previous methods being regarded as too deeply flawed for adoption into such an otherwise elegant language. Hygienic macros were developed in 1986 by Eugene Kohlbecker with assistance from Daniel Friedman, Matthias Felleisen, and Bruce Duba [Kohlbecker, 1986a]. The idea is to label the occurrences of variables with a tag indicating whether it appeared in the original source code or was introduced as a result of macro expansion; if multiple macro expansions occur, the tag must indicate which expansion step was involved.

We can see this by observing that only a person well-versed with how a particular Lisp is implemented can write efficient programs. Here is a perfectly nice piece of code: (defun make-matrix (n m) (let ((matrix ())) (dotimes (i n matrix) (push (make-list m) matrix)))) (defun add-matrix (m1 m2) (let ((l1 (length m1)) (l2 (length m2))) (let ((matrix (make-matrix l1 l2))) (dotimes (i l1 matrix) (dotimes (j l2) (setf (nth i (nth j matrix)) (+ (nth i (nth j m1)) (nth i (nth j m2))))))))) The expression to read and write a cell in a matrix looks perfectly harmless and fast as anything.

Download PDF sample

[Article] The Evolution of Lisp by Guy L. Steele Jr., Richard P. Gabriel


by Paul
4.1

Rated 4.08 of 5 – based on 12 votes