4 ms·
> Common Lisp's evaluation semantics are a language of it's own practically at this point and are very far removed form most languages. Huh? What do you mean?
by phoe-krk 6y ago
> Common Lisp's evaluation semantics are a language of it's own practically at this point and are very far removed form most languages.
Huh? What do you mean? The separate function namespace? Evaluation rules in CL, strictly speaking, are very simple.
* Symbols evaluate to variable values, lists evaluate to function/macro/special operator calls, and everything else evaluates to itself.
* The first element of a list is either a symbol that names a function/macro/special operator, or a lambda form that denotes an anonymous function.
* If we're calling a function, evaluate all argument forms and apply the function to them; if we're calling a macro, pass all argument forms as-is into the macroexpansion function; if we're calling a special operator, it's up to the implementation to make sense of this.
What's this "a language of its own" that you mean?