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 Tom Lord 30 Oct 2003 21:02 UTC


    > From: xxxxxx@freenetproject.org

    >> 1) [call/cc cursors capture protect their continuation]

    > This is nothing compared to the kind of leaks that are possible with
    > cursors alone.  Thats one of the major arguments for enumeration after
    > all.

I have no idea what you're talking about.

    > Btw, you're mistaken about call/cc and dynamic environments, I believe.
    > Try this code in a Scheme system:

    > (define x #f)
    > (begin (call/cc (lambda (k) (set! x k))) (display "hi"))
    > (current-output-port (open-output-file "/tmp/foo"))
    > (x)

What do you think I'm mistaken about?  I was thinking about typical
implementations of WITH-{INPUT,OUTPUT}-FILE which handle escape
continuations as you'd expect (which, admittedly, is not required by
R5RS).  In general, any feature of a program that uses dynamic scope
is going to interact awkwardly, at best, with call/cc-cursors.

    > >     > >           (error "there is no such thing as a set"))

    > Hardly.  A function like the one taylor wrote is explicitly illegal=20
    > based on the definition of union, assuming a real set is being passed.

But since 44 gives no way to create a real set, a conforming
implementation can use implementations that just call error.

    > > I'm saying: either don't try to operate on the Scheme types at all, or
    > > design 44 in such a way that the collections procedures work on (at
    > > least): [e.g., uses of lists as sequences, sets, ordered
    > > sequences, and (as association lists) dictionaries.]

    > The problem here is that the generic inter-collection operators
    > (add-all, etc) are too useful.

There are plenty of ways to do operations like that that don't rely on
a collection type -- and some of those ways are better.

If I want to ADD-ALL from some list, I want different things depending
on whether I'm using the list as a sequence or a dictionary.   Do you
think it's impossible to provide interfaces that let me make that
distinction?

    > Changing the SRFI to support non-collection datastructures at
    > the expense of this flexibility is just not an option.  There is
    > also a lot of new formalism in this SRFI that you often need a
    > more complicated datastructure to encapsulate, and which needs
    > to be passed around with the collection.

    > I think your mistake is confusing datastructures, which are low
    > level (lists, pairs, vectors) with collections.  A collection is
    > a combination of datastructure, semantics, and interface.

That's a red herring.

Lists and associatve lists are an example of non-disjoint types both
of which have a clear interpretation both as a sequence and a
dictionary but I don't think they are the only one.

It is an inessential property of a sequence that it also be
not-a-dictionary.   Introducing collection procedure which require
sequences to be disjoint from dictionaries treats that inessential
distinction as an essential one:  it makes the interfaces in 44 less
suitable for future extension.

-t