|
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>)?
[Prev in Thread] | Current Thread | [Next in Thread] |