[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#52063: 28.0.60; Confusing presentation of lambda
From: |
Stefan Monnier |
Subject: |
bug#52063: 28.0.60; Confusing presentation of lambda |
Date: |
Thu, 25 Nov 2021 14:07:45 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
> Depends on the length of the lexical list, though:
>
> (pp-emacs-lisp-code
> (let ((bar 1))
> (lambda (f) (setq foo bar) (setq foo bar))))
> =>
> (closure ((bar . 1) t) (f)
> (setq foo bar)
> (setq foo bar))
>
> can be unwieldy if the list is long.
[ Taking a step back and ignoring practical concerns like whether it's
easy to implement efficiently. ]
We could have something like:
(let ((foo 1)
(bar 2)
(baz 5))
(lambda (x) (+ x bar)))
return an object like
(closure (x) ((bar . 2))
(+ x bar))
instead of the current
(closure ((baz . 5) (bar . 2) (foo . 1) t) (x)
(+ x bar))
IOW, the final `t` can be dispensed with, we could swap the arglist and
the captured environment, and we could filter the environment to only
include variables which are actually used inside the function.
Stefan
- bug#52063: 28.0.60; Confusing presentation of lambda, (continued)
- bug#52063: 28.0.60; Confusing presentation of lambda, Gregory Heytings, 2021/11/24
- bug#52063: 28.0.60; Confusing presentation of lambda, Filipp Gunbin, 2021/11/24
- bug#52063: 28.0.60; Confusing presentation of lambda, Michael Heerdegen, 2021/11/25
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/25
- bug#52063: 28.0.60; Confusing presentation of lambda, Michael Heerdegen, 2021/11/25
- bug#52063: 28.0.60; Confusing presentation of lambda, Gregory Heytings, 2021/11/25
- bug#52063: 28.0.60; Confusing presentation of lambda, Philipp Stephani, 2021/11/24
- bug#52063: 28.0.60; Confusing presentation of lambda, Stefan Monnier, 2021/11/24
- bug#52063: 28.0.60; Confusing presentation of lambda, Filipp Gunbin, 2021/11/24
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/25
- bug#52063: 28.0.60; Confusing presentation of lambda,
Stefan Monnier <=
- bug#52063: 28.0.60; Confusing presentation of lambda, Jim Porter, 2021/11/25
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Stefan Monnier, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Stefan Monnier, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Stefan Monnier, 2021/11/26
- bug#52063: 28.0.60; Confusing presentation of lambda, Lars Ingebrigtsen, 2021/11/27