[plt-dev] cons*, why not?

From: Eli Barzilay (eli at barzilay.org)
Date: Sun Jul 12 13:44:54 EDT 2009

On Jul 12, Robby Findler wrote:
> Personally, I think the name "cons*" is better because the function
> does a whole bunch of cons's (and "whole bunch of" is one common
> meaning of "*").

Sorry, I didn't mean to imply that there are no other possible
justifications for `cons*'...  Another one would be that you could
just define `cons' to do the same, without breaking existing code.

Also, I forgot to add that IMO the most important point in favor of
`list*' is what I listed as #3.



> On Sun, Jul 12, 2009 at 10:50 AM, Eli Barzilay<eli at barzilay.org> wrote:
> > On Jul 12, Paulo J. Matos wrote:
> >> On Sun, 2009-07-12 at 10:43 -0400, Carl Eastlund wrote:
> >> > We call it list*.
> >> >
> >>
> >> Missed that... thanks!
> >> However, can't understand why list* when cons* seems a better name.
> >
> > 1. `list*' is older IME -- it had been part of mzscheme and every
> >   other scheme implementation I worked with, and it is "even" part of
> >   CL.  I have never seen `cons*' before srfi-1.
> >
> > 2. You can see this raised on the very first message to the srfi-1
> >   list, http://srfi.schemers.org/srfi-1/mail-archive/msg00000.html
> >   with a suggestion to include both since they are "equally popular".
> >   At the time, only `list*' was suggested.
> >
> >   Later, Olin simply said "General consensus is that CONS* is a
> >   better name. I have changed the name accordingly".  That's in
> >   http://srfi.schemers.org/srfi-1/mail-archive/msg00033.html .
> >
> > 3. IMO `list*' works much better -- and sets a nice precedent for
> >   `append*' and `string-append*' which we have now.  (The first is
> >   extremely useful, and was suggested by Ryan.)  `cons*' does not
> >   provide the same precedent.
> >
> > 4. In fact, the only justification I see for `cons*' is that you can
> >   write bad things like (cons* 1 2) and (cons* 1 2 3 4 5).  This is
> >   also the explanation in that first message to the srfi list ("while
> >   CONS* may suggest that the result could be an improper list").
> >
> > --
> >          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
> >                    http://barzilay.org/                   Maze is Life!
> > _________________________________________________
> >  For list-related administrative tasks:
> >  http://list.cs.brown.edu/mailman/listinfo/plt-dev
> >

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!


Posted on the dev mailing list.