>>>> "Clemens" == Clemens Heitzinger
<cheitzin(a)rainbow.studorg.tuwien.ac.at> writes:
Clemens> sperber(a)Informatik.Uni-Tuebingen.De (Michael Sperber [Mr. Preprocessor])
writes:
> Even then, it's not clear what you're trying to do. It
looks just
> like some syntactic sugar around renaming variables.
Clemens> Fresh uninterned symbols are made and bound to prevent unintended
Clemens> variable capture. According to the HyperSpec (see make-symbol),
Clemens> (eq (make-symbol "foo") (make-symbol "foo"))
Clemens> => nil
Clemens> What do you mean, "syntactic sugar"? Are macros syntactic sugar?
No, but you're creating syntactic sugar around the explicit use of
MAKE-SYMBOL. You're not describing a new approach, but rather new
notation for an old approach.
> Hygiene, however, means that variables in macros obey the same
scoping
> rules as the rest of the language. WITH-HYGIENIC-VARIABLES gives you
> no help whatsoever referring to lexical bindings of the macro. CL
Clemens> What help do you mean?
> macros are not hygienic, period.
Clemens> Nobody claimed that. I wanted to make the point that it is quite easy
Clemens> to define hygienic macros in CL.
And I made the point that what you're talking about is not hygiene.
You still need explicit annotations to prevent variable capture, at
definitions *and* uses. This is tedious and error-prone. You're
doing nothing to respect the binding rules of the underlying language.
--
Cheers =8-} Chipsy
Friede, Völkerverständigung und überhaupt blabla