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

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

bug#65344: 28.2; Unable to Edebug cl-flet form which uses argument destr


From: Gerd Möllmann
Subject: bug#65344: 28.2; Unable to Edebug cl-flet form which uses argument destructuring
Date: Fri, 18 Aug 2023 08:43:41 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.14.0

On 18.08.23 07:58, Michael Heerdegen wrote:
Gerd Möllmann <gerd.moellmann@gmail.com> writes:

which I would naively expect to be suitable for a single function in
an flet/labels.  (Maybe without the (setf ...) case, I'm not sure
ATM).

That's correct, but only one part.

RIght, that's what I meant.

Do you perhaps have an insight why there are two &name in the flet
spec?

Eh - not really.  That's some internal magic - to correctly associate
the code with the function names or something like that, I guess.

Ok. It's probably not important.

Also naively asked, what does the &or in the flet case mean?  Does it
say that that the elements of the flet can either be symbols or
functions?

There is a second syntax to support: a function binding can also have
the syntax (fname EXPR) instead of (fname args body...).  EXPR can be a
lambda expression but also any arbitrary Lisp returning a function
value.

(Another nominee for the most obscure feature of the month. That's also not in CL, BTW.)

When I try something like

(cl-flet (y (x (lambda () 1)))
  (x))

I get a not-a-list error from the Y. That's kind of what I'm wondering. The debug declaratino for flet has the symbolp at the same level as the local-function &define.

And, if that's the problem, the next question would then be how to declare a binding (FN VALUE). Maybe (%define &name ... <something>)?





reply via email to

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