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)
|
Anton van Straaten wrote: > Some adapters which take a Scheme type and return a collection could > do this, presumably within the bounds of the current 44 spec, although > I haven't tried to prove that to myself. Would that approach satisfy > you, or do you think that the collection procedures should be able to > operate directly on "unwrapped" Scheme types? There are some advantages to folding the primitive data structures into the collection hierarchy. For example, you can specify that ADD accepts a collection argument and have it "just work" for (ADD cv '(1 2 3)). Unfortunately, it's currently specified in a way that creates ambiguity. Is an alist a dictionary or a sequence? What about a list that happens to look like an alist? In some OO systems (e.g., prototype-based OO), that kind of value-based overloading is exactly what you want. It's very handy for stuff like geometry subtyping, where you *want* an ellipse to answer yes to "isa circle?" whenever the two axes happen to be equal. But it's very surprising if you're not expecting that kind of isomorphism. In particular, it's easy to violate interface preconditions or postconditions unless you carefully construct your type relationships and delegation patterns with this in mind. Currently, SRFI-44 doesn't address this issue. It specifies isomorphic types, but it doesn't deal with the consequences of that decision. It would be very cool if SRFI-44 could somehow permit isomorphism and make it work, without surprises. But the current design doesn't take it into account, so you end up with surprises like the list of pairs that acts like a dictionary. Same goes for lists of lists, because those too are lists of pairs. If that's too difficult, then it's better to eliminate the isomorphism, which effectively means no dispatching on primitive types. And without them, SRFI-44 has no concrete collections at all. With no concrete collections and no defined method for dispatch, all that's left is vapor. -- Bradd W. Szonye http://www.szonye.com/bradd