highly parametric interfaces
Alex Shinn
(14 Apr 2006 03:42 UTC)
|
Re: highly parametric interfaces John Cowan (14 Apr 2006 04:52 UTC)
|
Re: highly parametric interfaces
Per Bothner
(14 Apr 2006 05:50 UTC)
|
Re: highly parametric interfaces
Alex Shinn
(16 Apr 2006 06:14 UTC)
|
Re: highly parametric interfaces
Marc Feeley
(14 Apr 2006 11:47 UTC)
|
Re: highly parametric interfaces John Cowan 14 Apr 2006 04:52 UTC
Alex Shinn scripsit: > Perl effectively uses the latter, passing > hash-tables as arguments to complex functions, but Perl's > hash-table syntax makes this feel more like a keyword interface, > discussed below. Lua, which only has hashtables (the constructor is { ... }) allows calls of the form foo{bar=baz, zam=quux}, which passes a single hashtable argument, although parentheses are normally required around all arguments. > * Efficiency-oriented OOP - "Just set the parameters in the calling > object." This person of course assumes there are no functions, > only methods, and only for a single calling object. This is where > you get: > > (define fmt (make-number-formatter)) > (number-formatter-set-complex-behavior! fmt O_POLAR) > (number-formatter-set-magnitude-style! fmt O_FLOAT) > (number-formatter-set-magnitude-places! fmt 2) > (number-formatter-set-magnitude-radix! fmt 8) > (number-formatter-set-angle-style! fmt O_FLOAT) > (number-formatter-set-angle-radix! fmt 10) > (number-formatter-format fmt n) As I pointed out earlier, you actually don't: you get some variant of (fmt 'complex-behavior-set! O_POLAR) or (fmt 'set! 'complex-behavior O_POLAR). > [Alists are] fully general, and can express nested formats like the > polar example naturally. Unfortunately, for more typical examples > this is usually going to involve backquotes and commas > > (button `((text . ,(gettext "OK")) (action . ,quit))) Which is why my proposal #2 uses keyword syntax as an alternative representation of an alist or plist backquoted. -- While staying with the Asonu, I met a man from John Cowan the Candensian plane, which is very much like xxxxxx@ccil.org ours, only more of it consists of Toronto. http://:www.ccil.org/~cowan --Ursula K. Le Guin, Changing Planes