Argument Quoting Removal

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.

Resolution

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