[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Rationalising c[ad]\{2,5\}r.

From: Drew Adams
Subject: RE: Rationalising c[ad]\{2,5\}r.
Date: Wed, 11 Mar 2015 15:00:50 -0700 (PDT)

> 1. caar,  cadr, cdar, and cddr are defined in subr.el;
> 2. c[ad]\{3,4\}r are actually called cl-caaar, etc;

Gag. Why is that?

> 3. cl-c[ad]\{3,4\}r are defined in cl-lib.el;

Why is that?
What's next, cl-setq?

> 4. The aliases for the names without the cl- are defined in  cl.el;
> 5. c[ad]\{3,4\}r each contain the form
>     (declare (compiler-macro cl--compiler-macro-cXXr)
>   , whereas caar, cadr, cdar, cddr don't.  At the moment, I don't know
>   whether this is a bug, or whether the two cases are just handled
>   differently;
> 6. All the defuns are written out individually, making it hard to verify
>   that they are all correct, and making it very hard to extend to 5 or
>   more [ad]s, and also taking up a lot of lines of code spread over
>   several files.el.
> I propose the following solution: all these defuns should be in subr.el,
> the canonical names will be caaadr etc., 

Yes.  How about the _only_ names, instead?

> and there will be compatibility aliases for cl-caaadr etc..  

Why? Why is that needed?

All of these things pre-date Common Lisp.
They are _Lisp_ names, from Day One.

Has this slick cl-* paint job perhaps gotten out of hand?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]