Alternative formulations of keywords John Cowan 11 Apr 2006 22:35 UTC
Here are two alternative formulations of keywords, both based on the idea that keywords are pure syntax, with no representation at run time. 1) Keyword-value arguments are sorted into order corresponding to the alphabetical order of the keywords. Thus (foo 'bar foo: 32 bar: 54) comes out at run time as (foo 'bar 54 32). Similar treatment is given to keywords in lambda lists. (Note: forcer came up with this one independently.) 2) Keywords are syntactic sugar for a single argument in the form of an a-list. This maps (foo 'bar foo: 32 bar: 54) to (foo 'bar '((foo: . 32) (bar: . 54))). Keywords in lambda lists are initialized by unpacking the a-list when the procedure is invoked. -- John Cowan <xxxxxx@ccil.org> Yakka foob mog. Grug pubbawup zink wattoom gazork. Chumble spuzz. -- Calvin, giving Newton's First Law "in his own words"