the acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
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”.
HenHanna <HenHanna@devnull.tb> writes:
the acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
I remember REPL back until the early 80s. Wikipedia does not contradict
and adds a bit more:
<https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop>
History
In 1964, the expression READ-EVAL-PRINT cycle is used by L. Peter
Deutsch and Edmund Berkeley for an implementation of Lisp on the
PDP-1.
Since at least the 1980s, the abbreviations REP Loop and REPL are
attested in the context of Scheme.
the acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
the acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
HenHanna <HenHanna@devnull.tb> writes:
the acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop#History
"In 1964, the expression READ-EVAL-PRINT cycle is used by L. Peter
Deutsch and Edmund Berkeley for an implementation of Lisp on the
PDP-1.[3] Since at least the 1980s, the abbreviations REP Loop and REPL
are attested in the context of Scheme.[4][5] "
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”.
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”.
I never understood why we
need the term "dependency injection".
Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
On Wed, 10 Jul 2024 19:11:17 -0700, HenHanna wrote:I can more or less see how callbacks can be used as a kind of dependency injection, but those are separate concepts.
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”.
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”.
the acronym (?) REPL must be new in Lisp (and Scheme)
i'm sure i never saw it (used or mentioned) 25 years ago.
On Thu, 11 Jul 2024 12:57:12 -0000 (UTC), Antonio Marques wrote:
Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
On Wed, 10 Jul 2024 19:11:17 -0700, HenHanna wrote:I can more or less see how callbacks can be used as a kind of dependency
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”. >>>
injection, but those are separate concepts.
“Dependency injection” is just packaging up a bunch of callbacks as methods in a class.
On Thu, 11 Jul 2024 12:57:12 -0000 (UTC), Antonio Marques wrote:
Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
On Wed, 10 Jul 2024 19:11:17 -0700, HenHanna wrote:I can more or less see how callbacks can be used as a kind of dependency
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”. >>>
injection, but those are separate concepts.
“Dependency injection” is just packaging up a bunch of callbacks as methods in a class.
Follow-up to comp.lang.lisp. Even though it doesn't even belong to comp.lang.lisp, let's at least free other groups from this topic. Or
provide me with better judgement.
Lawrence D'Oliveiro <ldo@nz.invalid> writes:
On Thu, 11 Jul 2024 12:57:12 -0000 (UTC), Antonio Marques wrote:
Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
On Wed, 10 Jul 2024 19:11:17 -0700, HenHanna wrote:I can more or less see how callbacks can be used as a kind of dependency >>> injection, but those are separate concepts.
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”. >>>>
“Dependency injection” is just packaging up a bunch of callbacks as
methods in a class.
Why would you say ``packaging up''? Can we look at Wikipedia? (I'd appreciate a good reference. I don't know exactly where to look.)
--8<-------------------------------------------------------->8---
[...] dependency injection is a programming technique in which an
object or function receives other objects or functions that it
requires, as opposed to creating them internally. Dependency injection
aims to separate the concerns of constructing objects and using them,
leading to loosely coupled programs.[1][2][3] The pattern ensures that
an object or function that wants to use a given service should not
have to know how to construct those services. Instead, the receiving
'client' (object or function) is provided with its dependencies by
external code (an 'injector'), which it is not aware of. --Wikipedia
--8<-------------------------------------------------------->8---
So I see why you're saying ``callback'' because the object or function
will call your procedures to get what it needs (instead of creating them internally). But why would say ``packaging up''?
(Couldn't I
``inject'' the ``dependencies'' by passing them all as arguments.)
I suppose ``packaging up'' would be appropriate if we pass in to a
procedure an object containing all the callbacks that you say.
Anyway, my interpretation of the Wikipedia article is merely
abstraction. Nothing but abstraction. I don't see why we need to call
it ``injection'' or even ``dependency'', even though the choice of words isn't absurd.
(*) The source
Dependency injection
https://en.wikipedia.org/wiki/Dependency_injection
But why would say ``packaging up''? (Couldn't I
``inject'' the ``dependencies'' by passing them all as arguments.)
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.
C has lexical scoping without capture: the bindings are destroyed
when their associated scope terminates.
Julieta Shem <jshem@yaxenu.org> wrote:
(Couldn't I
``inject'' the ``dependencies'' by passing them all as arguments[?])
That's one way to do it. In languages that rely on 'objects' it's
fashionable to declare a field for each dependency, with an annotation that says it's a dependency, and some framework will provide the values at run time (there will be some framework-specific way to instantiate the dependencies).
I suppose ``packaging up'' would be appropriate if we pass in to a
procedure an object containing all the callbacks that you say.
Anyway, my interpretation of the Wikipedia article is merely
abstraction. Nothing but abstraction. I don't see why we need to call
it ``injection'' or even ``dependency'', even though the choice of words
isn't absurd.
Again, abstraction is just a requirement. There's few things in software
that don't imply some form of abstraction, so that word doesn't get us very far.
Dependency injection is all about the injection: someone provides your dependencies for you, and what concrete implementations of those is
something that can and will vary.
Dependency injection is all about the injection: someone provides your
dependencies for you, and what concrete implementations of those is
something that can and will vary.
It's very clear now. Thank you so much.
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?
C has lexical scoping without capture: the bindings are destroyed
when their associated scope terminates.
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.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 388 |
Nodes: | 16 (2 / 14) |
Uptime: | 10:02:19 |
Calls: | 8,221 |
Files: | 13,122 |
Messages: | 5,872,631 |