[implementations-list] GNU Emacs policy that says packages must not use cl.el at runtime

John J. Foerch jjfoerch at earthlink.net
Sat Feb 13 16:02:54 CET 2010


On Sat, Feb 13, 2010 at 02:04:42PM +0000, Vegard Øye wrote:
> 
> > Date: Tue, 9 Feb 2010 11:54:28 -0500
> > From: jjfoerch at earthlink.net
> >
> > Anyway, my basic point is that if you want to see Elisp improved,
> > there are more elegant languages than Common Lisp to use as your
> > model.
> 
> It's an interesting debate. What other languages do you have in mind?
> 

Just drawing from my own experience, Scheme and Haskell.  I think that
Common Lisp is often harder to read than it needs to be because it often
uses auxiliary information like keywords where alternative functions would
be more appropriate.  An example that always comes to mind is right
reduction (folding):

  Common Lisp:

    (reduce #'func seq :from-end t :initial-value init)

  Scheme:

    (fold-right func init seq)

  Haskell:

    foldr func init seq

The meaning of both the Scheme and Haskell versions is obvious, but the
Common Lisp version makes the reader study extra information in order to
get the meaning.  The meaning of the program is a step removed from from
its textual representation.

Semantics can be a nuanced and subjective topic, but I hope that language
designers (like those of Elisp) will always be mindful of semantics,
because programs that are easier to read are easier to think about.

I hope what I have said makes some sense.

-- 
John Foerch



More information about the implementations-list mailing list