Just for the record, I think extensible sequences would be really great! -- Dan
On Wed, Jun 29, 2011 at 5:24 PM, Alessio Stalla alessiostalla@gmail.comwrote:
On Wed, Jun 29, 2011 at 12:06 AM, Daniel Weinreb dlw@google.com wrote:
Hi. I read Christophe's paper on extensible sequences. I don't think this bears on my new package, though, for two reasons: (1) it's only about sequences; maps don't fit into its framework.
Yes, I was aware of that; I suggested the paper because it details what is, imho, an effort analogous to yours, and might give inspiration wrt. the general spirit, the API and the integration with the rest of CL.
(2) He is proposing here a change that would have to be made to every Common Lisp implementation.
Such a change would have to be made because CL already has a sequence abstraction, so it makes sense to extend it rather than to provide another abstraction with the same goals. Since there's no map abstraction in CL, a similar API for maps would not need any special support from implementations. Extra features like LOOP integration might be provided only on CL implementations with an extensible LOOP, or by using Iterate instead, or, shameless plug, doplus [1].
As may have been apparent from other email I've sent, I am, sadly, pessimistic that we can really get all of the implementors to make changes in harmony. It's not that they are bad or incompetent or anything like that. It's just that they're busy people with other priorities. In some cases, the priorities include "putting food on the table" (in the metaphorical sense), i.e. it would be easier if someone could pay them to do this, but I don't see how that would happen. Anyway, thanks for pointing me at this very interesting paper.
I'm with Pascal on pessimism: I'm sure all sane Lisp implementers will add any feature that is reasonably easy to implement and is demanded by sufficiently many users. Fixes to the MOP generally satisfy both these rules. Extensible sequences do not, yet, at least because most Lispers don't know about them or don't find them sufficiently useful to bug their vendors about them. In my personal experience with ABCL, where dealing with Java libraries is fairly common, having Java Lists be natively understood as CL sequences is valuable. I imagine that if, e.g., FSet would get more users, having it integrated with sequences would be appealing (even if it would open another can of worms since the CL sequence API assumes mutability - a design mistake, imho).
[1] http://code.google.com/p/tapulli/wiki/doplus
Alessio