this post was submitted on 21 Nov 2023
1 points (100.0% liked)
Lisp
53 readers
3 users here now
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Because
eval
is what defines what the syntax of the language is, whileapply
has nothing to do with syntax at all but only semantics. Imagine a lisp which was in latin. You would need to changeeval
but notapply
. Or if there are larger changes to syntax:apply
remains unchanged in all these cases.In same way, with a slight variant of
apply
(it must get an environment object as well as function and arguments) then you can change the scoping rules of your Lisp while making no changes at all toeval
but only toapply
. Such an evaluator is here (in Racket):