This page is part of the web mail archives of SRFI 117 from before July 7th, 2015. The new archives for SRFI 117 contain all messages, not just those from before July 7th, 2015.
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. 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. 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. 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? From: Takashi Kato <ktakashi@xxxxxxxxx> Subject: make-queue-with-list and make-queue-with-first-last Date: Thu, 04 Dec 2014 20:37:13 +0100 > Hi, > > I'm wondering why these 2 procedures are separated. Since an list > argument can be also first pair of the list, I think the > `make-queue-with-list` procedure can be like this: > > (make-queue-with-list first [last]) > > Beside this, the description of `make-queue-with-list` seems forcing > implementations to use a list as its storage. I think this is a bit > over specifying. For example, Sagittarius also has queue library and > it's implemented with deque which doesn't use a list as its storage. > Thus it's impossible to build this SRFI on top of the library. Because > of this, it is also impossible to satisfy O(1) required by > `make-queue-with-first-last`. > > > -- > _/_/ > Takashi Kato > E-mail: ktakashi@xxxxxxxxx >