Hi Ana, > i'm looking for a minimum list of functions to create a lisp > interpreter (like picolisp :). which ones to master to grok all of the > other functions that are built on top of the foundation functions?
Well, this is a question quite often asked in other Lisp groups too. I think it is difficult to answer. If you look in Lisp books, you read that you need 'eval', 'apply', 'cons', 'car', 'cdr' and 'cond'. Then 'quote', 'set' (perhaps 'setq'), and some predicate functions like 'atom'. Arithmetic functions might also be useful. But for a practical Lisp, you need also I/O functions, which usually take up the largest part of the interpreter. And the second largest part is taken by the Lisp execution itself (parameter and variable bindings, control transfer etc.) So the functions per se are not the problem. Most built-in functions in Lisp are quite simple, some even trivial. It is their interplay which makes up the system. Moreover, if you try to stay with an absolute minimal set of built-in functions, you'll see that the rest of the system will become both very slow and complicated (as many things are simpler to code in a lower-level language). PicoLisp was designed with such goals in mind (to be minimal in certain ways), but it tries to keep a balance between minimalism and pragmatism. Just my opinion ;-) Tomas Hlavaty investigated that matter a bit deeper. Perhaps he can tell us more about his experiences? Cheers, - Alex -- UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
