The original design of Better Scheme included something called argument quoting which was a convenient way to mark arguments as being unevaluated when passed to a function. For example:
(define f
(lambda ('name)
(lambda () name)))
Defines a function f
whose argument is not evaluated before being passed. Thus:
(f (a b c)) => (a b c)
Once hygienic macros were introduced this seemed like an unnecessary feature since the same effect could be achieved using macros very nicely. Still it was a convenient feature.
Argument quoting was removed because it is fundamentally redundant (not orthogonal to macros). In addition, their removal simplifies the run-time.
jwalker@cs.oberlin.edu |