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 Per Bothner 14 Apr 2006 05:15 UTC

Alex Shinn wrote:
> * OOP purist - "Just wrap any parametric behaviour into one or more
>   configuration objects."  This is very flexible, and convenient for
>   chaining and passing on the same (or slightly modified)
>   configuration to other functions.

For example some GUI APIs have "style objects": A style is a
possibly-named possibly-modifiable possibly-inheritable mapping
from keys (symbols or property specifiers) to property values.
Many "widgets" can share a common style.

>   The disadvantages of this are that either 1) for every parametric
>   procedure you need to define a new class and keep it in sync as
>   the API changes, or 2) you use a single extensible configuration
>   class, perhaps a hash-table or closure, which suffers from poor
>   performance.

But this isn't really any different or worse than using a-lists or
p-lists or for that matter the proposed CL-inspired solution.  It's
an implentation tradeoff between constant-type lookup versus compact
size.  (Worth considering is a sorted "property vector".)

Even if functions are defined in terms of configuration object, one
would still want nice syntatic sugar that maps into configuration
objects.  That is somewhat easier if we view a configuration object
as a list of "associations" - which may or may not be the same thing
as a traditional a-list.
--
	--Per Bothner
xxxxxx@bothner.com   http://per.bothner.com/