Fundamental design flaws Tom Lord (29 Oct 2003 17:46 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (29 Oct 2003 19:13 UTC)
Re: Fundamental design flaws Bradd W. Szonye (29 Oct 2003 20:06 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (29 Oct 2003 20:47 UTC)
Re: Fundamental design flaws Tom Lord (29 Oct 2003 23:24 UTC)
Re: Fundamental design flaws Taylor Campbell (30 Oct 2003 01:53 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 04:42 UTC)
Re: Fundamental design flaws Tom Lord (30 Oct 2003 16:52 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 17:11 UTC)
Re: Fundamental design flaws Tom Lord (30 Oct 2003 16:33 UTC)
RE: Fundamental design flaws Anton van Straaten (30 Oct 2003 16:52 UTC)
Re: Fundamental design flaws Bradd W. Szonye (30 Oct 2003 17:19 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 18:13 UTC)
Re: Fundamental design flaws Bradd W. Szonye (30 Oct 2003 21:18 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 21:26 UTC)
Re: Fundamental design flaws Bradd W. Szonye (30 Oct 2003 21:35 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 21:49 UTC)
Re: Fundamental design flaws Bradd W. Szonye (30 Oct 2003 21:55 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 22:05 UTC)
Re: Fundamental design flaws Bradd W. Szonye (30 Oct 2003 22:28 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 22:52 UTC)
Re: Fundamental design flaws Alex Shinn (31 Oct 2003 03:04 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (31 Oct 2003 03:20 UTC)
Re: Fundamental design flaws Alex Shinn (31 Oct 2003 07:13 UTC)
RE: Fundamental design flaws Anton van Straaten (30 Oct 2003 23:07 UTC)
Re: Fundamental design flaws Bradd W. Szonye (31 Oct 2003 03:12 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 21:57 UTC)
Re: Fundamental design flaws Tom Lord (30 Oct 2003 20:23 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 20:35 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 17:06 UTC)
Re: Fundamental design flaws Bradd W. Szonye (30 Oct 2003 17:26 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 18:15 UTC)
Re: Fundamental design flaws bear (30 Oct 2003 18:48 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 19:35 UTC)
Re: Fundamental design flaws bear (30 Oct 2003 19:45 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 20:08 UTC)
Re: Fundamental design flaws bear (30 Oct 2003 20:40 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 20:48 UTC)
Re: Fundamental design flaws Tom Lord (30 Oct 2003 20:49 UTC)
Re: Fundamental design flaws scgmille@xxxxxx (30 Oct 2003 21:02 UTC)
Re: Fundamental design flaws Bradd W. Szonye (30 Oct 2003 21:26 UTC)

Re: Fundamental design flaws scgmille@xxxxxx 30 Oct 2003 22:52 UTC
On Thu, Oct 30, 2003 at 02:28:04PM -0800, Bradd W. Szonye wrote:
> > Bradd W. Szonye wrote:
> >> How do the generic procedures know whether '((a . 1) (b . 2)) is a
> >> list or an alist? If it's based on content, you have isomorphism
> >> issues to resolve. If you're now using something like a record type
> >> for alists, then you're not really handling primitive alists.
>
> xxxxxx@freenetproject.org wrote:
> > They never receive ((a . 1) (b . 2)).  They receive an alist-dict,
> > which has structure beyond the stored values which it can dispatch on
> > (Taylor can comment more).  We don't handle primitive alists.
>
> You make a big deal about how important it is to provide generic
> procedures for collections, but you don't support a very common
> collection type? Code that uses alists must choose between a complete
> port or no support? Actually, I suppose that a genuine alist would look
> like a "list" to SRFI-44.

Please get out of your head the idea that the 'look' of a datastructure
has anything to do with how its dispatched.  alists by themselves are
not a collection.  A collection is a combination of a datastructure
(representation, storage model, etc) and a set of operators.  Shiro and
others pointed out real problems with treating alists as dictionaries
without modification.  Because those problems exist, we have
alist-dicts, which are dictionaries in the SRFI-44 sense, which store
the mappings in an alist (which itself may be wrapped in something else
to store key and value equivalence functions and to facilitate typing).

> Could you please explain how this is consistent with your goals? While
> it may be a good idea not to support "primitive" Scheme collections, it
> doesn't seem compatible with your goals.

The inclusing of concrete collections is in there for prooff of concept.
Its a minor subgoal of the SRFI, dwarfed by the naming, semantics and
protocol goals.

>
> So are primitive lists and vectors supposed to be real collections,
> implemented by all SRFI-44 providers? If not, then why are they in the
> SRFI? If so, then how do you deal with lists and vectors that aren't
> *just* lists and vectors? Does SRFI-44 really treat a Scheme alist as if
> it were just a simple list?

44 never just takes an existing vector or list and says "Hey, you're an
SRFI-44 sequence".  Valid 44 collections must be created using the
make-list and make-vector or list and vector constructors.  Any behavior
with primitive Scheme types is undefined.

> It'd be better to use distinct, non-primitive types for *all* of them,
> rather than fooling around with primitive ADTs inconsistently. If you
> do, however, be careful to rename "list" and "vector," like you renamed
> "alist."

Its not really necessary with list and vector so much since the
operators are all largely compatible with R5RS.  See also the discussion
on c.l.s. about PLT, raise, and modules (which your already involved in,
right?)

	Scott