help-gnu-emacs
[Top][All Lists]
Advanced

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

RE: [External] : Re: Emacs 30.0 warning from `cl-pushnew' and `memql'


From: Drew Adams
Subject: RE: [External] : Re: Emacs 30.0 warning from `cl-pushnew' and `memql'
Date: Fri, 30 Dec 2022 22:55:07 +0000

> > But "very frequent", really?  Any evidence that
> > that's been the case for the many users of CL
                                               ^^
                                        Common Lisp
> > `case' since the mid-80s?
> 
> The only "evidence" I have the number of such errors
> I've fixed over the years in other people's ELisp code.

Which isn't an indication of such for _CL_ `case',
i.e., in the code of _Common Lisp_ users.

Beyond being perhaps an indication that the Emacs
_doc_ for `cl-case' should be improved, it sounds
like no Elisp problem with `case' has been found.

(Well, I did mention a bug I noticed, of `cl-case'
not raising an error when CL specifies it should.)

And I guess you don't have an example of using
`pcase' to do what `case' does but somehow "simpler".

I doubt that Elisp coders are dumber than CL coders,
in general.  If the former are misunderstanding the
no-quoting thing then my guess is that's due to the
lack of doc saying that keylists and their entries
aren't evaluated.

The use case of `case' is simple, yet common.  We
should add it to Elisp (with no `cl-' prefix).
___

Note BTW that Common Lisp even adopted _exactly_
the same thing for `typecase' as for `case'.  That
wasn't something inherited from other Lisps AFAIK.
They could have done something different, but they
chose the `case' approach, including `otherwise',
`t', and _no evaluation_ of keys:

 "The TYPE that appears in each clause is a type
  specifier; it is _not evaluated but is a literal_
  type specifier."

Clearly they didn't see a problem with not evaling
keys, and opted for a simple syntax for a simple
use case.

https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node84.html

<<attachment: winmail.dat>>


reply via email to

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