Thank you for your very helpful response.
On Fri, Jun 1, 2012 at 8:02 AM, Dominik G <
dgr...@googlemail.com> wrote:
> In your second example (intern Y) evaluates to the _global_ symbol X.
> This is different from the X used in the function.
This I think gets to the heart of the matter. So... my question then
is why does it evaluate to the global symbol instead of the local one?
Is this deliberate, is it based on some underlying principle?
If one takes too literally: "In Shen all symbols evaluate to
themselves, except they are in the first place of an s-expr." Then:
> (defun test (X Y) (+ X Y))
would be a type error because it's trying to add two symbols. So... in
this case, the X and Y in (+ X Y) are not evaluating to themselves,
they are being replaced by the values in the parameter list. Is it
because they are not "symbols" (though they are referred to as symbols
in the documentation), they are "parameter names"?