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

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

bug#57397: cl-letf blindly macroexpands places


From: Eli Zaretskii
Subject: bug#57397: cl-letf blindly macroexpands places
Date: Wed, 28 Sep 2022 19:52:00 +0300

> Cc: 57397@debbugs.gnu.org, Lars Ingebrigtsen <larsi@gnus.org>
> Date: Wed, 28 Sep 2022 12:29:20 -0400
> From:  Stefan Monnier via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> > But could we maybe describe that simpler like "when expander is a lambda
> > form [...]"?  - Because AFAIU these arguments are added to _any_
> > argument list - with other words, implicitly hint that it's an error to
> > specify function arguments in the lambda arglist explicitly, or to
> > provide an empty arglist.
> 
> OK, thanks, done,

IMO, the text which was installed looks devoid of any useful
information:

          When EXPANDER is a lambda form it should be of the form
          ‘(lambda (ARG) BODY)’ because the function’s formal arguments
          are automatically added to the lambda’s list of arguments.

Isn't every lambda form _always_ of that form?

And "because" is out of the blue: there's no cause and effect relation
here that I can identify.

The original text was somewhat more self-explanatory:

 To avoid syntactic redundancy, when @var{expander} is of the form
 @code{(lambda (@var{arg}) @var{body})} the function's formal arguments
 are automatically added to the lambda's list of arguments.

This explains the reason, and actually reverses the cause and the
effect, which then make sense.  (Although the issue with the form of
lambda still stands.)

What am I missing?





reply via email to

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