Re: Alternative formulations of keywords
John Cowan 12 Apr 2006 13:35 UTC
Marc Feeley scripsit:
> Most Scheme systems allow separate compilation (think of "load"). [...]
> You have the same problem. So it doesn't suffice for the function
> definition to be global.
I think this argument is strong enough that I will drop #1 (without
prejudice, as the lawyers say: meaning that if someone comes up with
a good counterargument I may revive #1).
There remains #2, which converts keyword-argument pairs to a-lists.
This requires only that it be lexically apparent what is and what is not
a keyword, not that the actual set of keywords for a function be known.
(Still awaiting a use case for (foo bar baz zam) where baz evaluates
to a keyword at runtime.)
I will also formally add #3 now, in which the keywords are syntactic
sugar for procedure *names* like foo:bar:baz:zam:.
In both cases higher-order invocations are possible, though not with
keyword syntax. #2 requires more work at run-time but avoids possible
combinatorial explosions. #3 requires nothing at run-time but may create
an explosion of code space.
> The way I see it you are forbidding the use of higher-order functions
> in combination with named optional parameters. That would be a
> serious limitation for a functional language like Scheme.
It would, and I certainly don't want that.
--
My confusion is rapidly waxing John Cowan
For XML Schema's too taxing: xxxxxx@ccil.org
I'd use DTDs http://www.ccil.org/~cowan
If they had local trees --
I think I best switch to RELAX NG.