Sujet : Re: REPL in Lisp
De : gneuner2 (at) *nospam* comcast.net (George Neuner)
Groupes : comp.lang.lisp sci.lang comp.lang.schemeDate : 14. Jul 2024, 17:25:19
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <p4p79jdt85d31cov2hm25cnbbra8cu4oq1@4ax.com>
References : 1 2 3 4
User-Agent : ForteAgent/8.00.32.1272
On Sat, 13 Jul 2024 08:24:27 +0100, Aidan Kehoe <
kehoea@parhasard.net>
wrote:
>
Ar an dara lá déag de mí Iúil, scríobh Kaz Kylheku:
>
On 2024-07-11, Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
On Wed, 10 Jul 2024 19:11:17 -0700, HenHanna wrote:
>
the acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
>
There are many new terms coined for old concepts. Like “capture” for
“lexical binding”, or “dependency injection” for “callback”.
Lexical binding does not imply closure/capture.
>
I’ve never seen “capture” used as a general term for closures or for lexical
scope in this way; are we sure it’s what was meant?
"Capture" is exactly what was meant.
When a closure references variables from external scopes - that is
things are that are neither arguments nor locals - it is said to
"capture" those variables.
Lisp and Scheme create a copy of the captured variable in the closure
and compile the code to reference the closure's copy rather than the
original [which may no longer exist or may not be in scope when the
closure code finally is executed].
C has lexical scoping without capture: the bindings are destroyed
when their associated scope terminates.
And C++ now has closures with control over capture. If you choose not
to capture, external variables that are referenced must be in scope
(at their right locations) if and when the closure code is executed.