make-queue-with-list and make-queue-with-first-last Takashi Kato (04 Dec 2014 19:37 UTC)
Re: make-queue-with-list and make-queue-with-first-last Shiro Kawai (04 Dec 2014 20:15 UTC)
Re: make-queue-with-list and make-queue-with-first-last John Cowan (05 Dec 2014 12:39 UTC)
Re: make-queue-with-list and make-queue-with-first-last John Cowan (05 Dec 2014 12:36 UTC)
Re: make-queue-with-list and make-queue-with-first-last Kevin Wortman (05 Dec 2014 20:43 UTC)
New release of SRFI 117 John Cowan (06 Dec 2014 02:00 UTC)
Re: New release of SRFI 117 Takashi Kato (06 Dec 2014 09:27 UTC)
Re: New release of SRFI 117 John Cowan (06 Dec 2014 17:27 UTC)
Re: New release of SRFI 117 Kevin Wortman (06 Dec 2014 22:39 UTC)
Re: New release of SRFI 117 John Cowan (06 Dec 2014 22:52 UTC)

Re: make-queue-with-list and make-queue-with-first-last John Cowan 05 Dec 2014 12:39 UTC

Shiro Kawai scripsit:

> I've been pondering this, too - whether this srfi should specify
> underlying implementation or not.  Gauche also has a queue library,
> which now use lists internally but I was about to introduce
> alternative implementation using a ring buffer.

I would like to see a ring-buffer SRFI.

> OTOH, the intention of this srfi is understandable - that,
> by exposing internal list structure, we can use rich list
> utitities instead of duplicating them for queue, e.g. queue-find,
> queue-any, queue-every etc.

Exactly so.

> Arguably, this makes the proposed API low-level - for example,
> if an implementation wants to provide a variation of a queue
> which is MT-safe, API to expose its internal list won't make
> much sense.  One need to build a distinct structure which
> internally use this srfi.

Yes.

> Maybe what bothers me most is that this specific implementation
> strategy takes a generic name "queue".   It'd be nice that
> a generic queue-add-front! etc work with various queue
> implementations.
>
> Will it be too confusing to name this as simple-queue or list-queue
> or something?

Scheme doesn't normally mind long names, but make-list-queue-from-list
might be overkill.  Perhaps I will get rid of make-queue as it exists
(I'm inclined to agree that it isn't very useful) and merge
make-queue-from-list and make-queue-from-first-last into a new
make-list-queue.

I don't suppose "tconc" will fly for Scheme, though it does have Lisp
tradition behind it.  :-)

--
John Cowan          http://www.ccil.org/~cowan        xxxxxx@ccil.org
First known example of political correctness: After Nurhachi had united
all the other Jurchen tribes under the leadership of the Manchus, his
successor Abahai (1592-1643) issued an order that the name Jurchen should
be banned, and from then on, they were all to be called Manchus.
                --S. Robert Ramsey, The Languages of China