> 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
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?