Creating Lisp with ... Lisp?
Hey everyone,
today we'll be adressing the contents of the article The Roots of Lisp by Paul Graham. In such article Graham explains with great detail the process that went behind the creation of such a complex and timeless language. He talks about quite a unique and complex concept which is Lisp's ability to wrtie in itself. There are some key elements in understanding this.
First of all he mentions the elemental operators in the Lisp environment: quote, eq, car, atom, cdr, cons and cond. It's interesting to see how you can constrcut complex fucntions with these operators and using them within each other to create other type of functions. If you come to think of it, when programming in any other language, the essence of each of these operators is what you use on a consisten basis to create any complex program, so to think that these same operators can be used to write a programming language as a whole is rahter impressive and to be honest, difficult to fully grasp.
All these operators are contained in a function which is known as eval, withouth these funciton, we wouldn't be able to write more code and functions to evalute data. Through recursion, these function takes all of the operators and is in charge of constructing everything the programmer needs in a programming environment to evaluate and make use of all of these operators.
It's very interesting to think of what the article explains and how even though the language has evolved throughout time, if we dig deep down, what we find at its core is the function eval.
Comments
Post a Comment