Absolutely ditto. In order to understand Kernel and $vau, I tried reconstructing it using my favourite prototyping language (Lua). Far from complete, but enough to define 'define', 'if' etc.; for me pretty amazing that it works at all. Of course it's easier, since Lua already supports higher order functions, fast hash tables, garbage collection etc... but definitely worthwhile from a learning point of view, since the code can be short and concentrate mostly on the important stuff.
For the curious: https://github.com/grrrwaaa/catsinboxes/blob/master/fexpr_vau.lua I think it might only be another weekend's work to add the missing parts and write a parser for a full Kernel-on-Lua(JIT). Graham On Apr 11, 2012, at 4:57 PM, Michael Fogus wrote: >> Then pick your favourite superfast-prototyping programming language and >> build McCarthy's evaluator in it. (This step is not optional if you want to >> understand properly.) Then throw some expressions containing >> higher-order functions and free variables at it, figure out why it behaves >> oddly, and fix it without adding any conceptual complexity. > > I couldn't agree with this approach more. In my own attempt at this > activity (http://fogus.me/fun/lithp/) I learned more about the > McCarthy model, its history, and limitations than any paper I'd read > before or since. > _______________________________________________ > fonc mailing list > fonc@vpri.org > http://vpri.org/mailman/listinfo/fonc _______________________________________________ fonc mailing list fonc@vpri.org http://vpri.org/mailman/listinfo/fonc