Re: Alternative formulations of keywords
John Cowan 12 Apr 2006 04:32 UTC
Marc Feeley scripsit:
> How is foo going to determine which parameters were supplied? Are
> you assuming that the compiler has some knowledge about foo so that
> it knows the complete set of named optional parameters and can pass
> the "unsupplied value" for the parameters that are not supplied?
Just so.
> In general this is impossible because the function to call may be
> computed, as in:
I agree that my proposal #1 will not work when the function to be
called is not known at compile time. However, I don't mind if it
doesn't work in every case, since the equivalent form for which the
keywords are a shorthand is always well-defined, if awkward.
If you are familiar with Prolog, I'm suggesting something vaguely
analogous to the use of DCG clauses.
> For the second proposal you have to assume the general case where you
> are passing computed expressions, such as:
>
> (foo 'bar foo: (f x) bar: (g x))
>
> which would have to be transformed into
>
> (foo 'bar (list (cons 'foo: (f x)) (cons 'bar: (g x))))
Or equivalently to (foo 'bar `((foo: . ,(f x)) (bar: . ,(g x)))).
--
We pledge allegiance to the penguin John Cowan
and to the intellectual property regime xxxxxx@ccil.org
for which he stands, one world under http://www.ccil.org/~cowan
Linux, with free music and open source
software for all. --Julian Dibbell on Brazil, edited