We were taught to translate a recursive program to continuation passing style in a way that many variables could be translated to registers directly. If I remember correctly, Jonathan translated this from Scheme to C and just compiled that result.
We were taught to translate a recursive program to continuation passing style in a way that many variables could be translated to registers directly. If I remember correctly, Jonathan translated this from Scheme to C and just compiled that result.
I guess if you only write number crunching code, then yeah. But if you write an app (web or client) - what good is Lisp?
http://en.wikipedia.org/wiki/Common_Lisp_Object_System
There is also Arc, the language Paul Graham and Robert Morris wrote for the web. This site is written it it.
See http://en.wikipedia.org/wiki/Closure_(computer_programming)
Chastised, Anton took his leave from his master and returned to his cell, intent on studying closures. He carefully read the entire "Lambda: The Ultimate..." series of papers and its cousins, and implemented a small Scheme interpreter with a closure-based object system. He learned much, and looked forward to informing his master of his progress.
On his next walk with Qc Na, Anton attempted to impress his master by saying "Master, I have diligently studied the matter, and now understand that objects are truly a poor man's closures." Qc Na responded by hitting Anton with his stick, saying "When will you learn? Closures are a poor man's object." At that moment, Anton became enlightened.
[1] http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m...
Personally, I see closures as objects that the compiler cooks up on your behalf. This coming from a compiler background, where said compiler is usually implemented in C++ :P.