Почему называется "замыкание"?
От: LaptevVV Россия  
Дата: 08.02.22 04:23
Оценка: +1
Я тут уже как-то задавал вопрос, почему фактический разрыв зависимостей называется внедрением зависимостей.
Внятного ответа не получил.
Тогда задам второй вопрос: почему замыкание называется замыканием?
Откуда такое название пошло-то?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Почему называется "замыкание"?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 08.02.22 04:33
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Откуда такое название пошло-то?

Есть версия что из теории множеств (Замкнутое множество / Closed set)
Re[2]: Почему называется "замыкание"?
От: LaptevVV Россия  
Дата: 08.02.22 04:39
Оценка:
LVV>>Откуда такое название пошло-то?
S>Есть версия что из теории множеств (Замкнутое множество / Closed set)
с точки зрения программирования: любая чистая функция является замыканием?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Почему называется "замыкание"?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 08.02.22 04:45
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>с точки зрения программирования: любая чистая функция является замыканием?

вообще никакой связи с чистотой. Т.е. может быть чистой без замыкания и замыканием, но не чистой.
Re[4]: Почему называется "замыкание"?
От: LaptevVV Россия  
Дата: 08.02.22 04:56
Оценка:
LVV>>с точки зрения программирования: любая чистая функция является замыканием?
S>вообще никакой связи с чистотой. Т.е. может быть чистой без замыкания и замыканием, но не чистой.
Тогда вообще непонятно.
Что является замыканием в программировании?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Почему называется "замыкание"?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 08.02.22 05:05
Оценка: 6 (2) +1
Здравствуйте, LaptevVV, Вы писали:

LVV>>>с точки зрения программирования: любая чистая функция является замыканием?

S>>вообще никакой связи с чистотой. Т.е. может быть чистой без замыкания и замыканием, но не чистой.
LVV>Тогда вообще непонятно.
LVV>Что является замыканием в программировании?
Техника связывания переменных из лексического контекста в первоклассных функциях.
Например, нет проблеммы использовать глобальные переменные в любой функции. Но использовать локальные переменные другой функции, которая определяет данную функцию — с этим сложнее. Так вот, техника связывания таких переменных и называется замыканием.
Re[6]: Почему называется "замыкание"?
От: LaptevVV Россия  
Дата: 08.02.22 05:12
Оценка:
LVV>>>>с точки зрения программирования: любая чистая функция является замыканием?
S>>>вообще никакой связи с чистотой. Т.е. может быть чистой без замыкания и замыканием, но не чистой.
LVV>>Тогда вообще непонятно.
LVV>>Что является замыканием в программировании?
S>Техника связывания переменных из лексического контекста в первоклассных функциях.
S>Например, нет проблеммы использовать глобальные переменные в любой функции. Но использовать локальные переменные другой функции, которая определяет данную функцию — с этим сложнее. Так вот, техника связывания таких переменных и называется замыканием.
То есть, [] в лямдах С++ — это и есть замыкание?
От жеж блин...
Век живи, век учись — дураком помрешь...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Почему называется "замыкание"?
От: samius Япония http://sams-tricks.blogspot.com
Дата: 08.02.22 05:21
Оценка: +3
Здравствуйте, LaptevVV, Вы писали:

S>>Например, нет проблеммы использовать глобальные переменные в любой функции. Но использовать локальные переменные другой функции, которая определяет данную функцию — с этим сложнее. Так вот, техника связывания таких переменных и называется замыканием.

LVV>То есть, [] в лямдах С++ — это и есть замыкание?
Не вполне. Замыкание — это техника. Кунг-фу такое. А то, что в [] в лямбдах C++ — это описание переменных, которые должны быть захвачены в замыкание. Многие языки это делают без явного указания, т.е. списка в квадратных скобках нет, а замыкание — есть. Да даже лямбда не обязательна для появления замыкания в общем виде (не про C++).
LVV>От жеж блин...
LVV>Век живи, век учись — дураком помрешь...

Многие знания — многие печали
Re: Почему называется "замыкание"?
От: ArtDenis Россия  
Дата: 08.02.22 05:34
Оценка: 132 (8) +3
Здравствуйте, LaptevVV, Вы писали:

LVV>Откуда такое название пошло-то?


В английской вики написано же:

Peter J. Landin defined the term closure in 1964 as having an environment part and a control part as used by his SECD machine for evaluating expressions.[3] Joel Moses credits Landin with introducing the term closure to refer to a lambda expression whose open bindings (free variables) have been closed by (or bound in) the lexical environment, resulting in a closed expression, or closure.[4][5] This usage was subsequently adopted by Sussman and Steele when they defined Scheme in 1975,[6] a lexically scoped variant of Lisp, and became widespread.

[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re: Почему называется "замыкание"?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 08.02.22 09:40
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Я тут уже как-то задавал вопрос, почему фактический разрыв зависимостей называется внедрением зависимостей.

LVV>Внятного ответа не получил.
LVV>Тогда задам второй вопрос: почему замыкание называется замыканием?
LVV>Откуда такое название пошло-то?



Лингвисты говорят, что в индоевропейском тот корень (do̅, dəH, как угодно), который дал русское "дать", изначально имел смысл двустороннего обмена (и в некоторых потомках поэтому получил смысл "взять", а не "дать").
Это я к тому, что смысл термина будет зависеть от того, с какой стороны посмотреть — для вызывающего, да, это разрыв зависимостей, а для создаваемого объекта, наоборот, их создание
Созданная функция как бы "замыкается в себе" со всеми данными.

Ещё похожий эффект: слово virtual со смыслом "настоящий", "реальный" (и сейчас virtually — на самом деле), получил смысл "иллюзорный, не существующий в реальности" сначала через "виртуальную память", а потом "виртуальную реальность". Точно так же: видимое реальным для того, кто внутри — но иллюзорное для того, кто снаружи...
А могли назвать semblant memory, хотя у этого тоже были бы свои странные ассоциации.

Это я не про непосредственную историю (рядом пересказали со ссылкой), но к тому, что такое употребление имело все возможности успешно закрепиться, потому что есть логика, которой оно не противоречит.
The God is real, unless declared integer.
Отредактировано 08.02.2022 9:41 netch80 . Предыдущая версия .
Re[5]: Почему называется "замыкание"?
От: vaa  
Дата: 11.02.22 02:12
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>>>с точки зрения программирования: любая чистая функция является замыканием?

S>>вообще никакой связи с чистотой. Т.е. может быть чистой без замыкания и замыканием, но не чистой.
LVV>Тогда вообще непонятно.
LVV>Что является замыканием в программировании?

Внешние переменные, на которые ссылается лямбда-выражение, называются захваченными переменными.
Лямбда-выражение, которое захватывает переменные, называется замыканием.

C# 6.0. Карманный справочник
Авторы: Джозеф Албахари, Бен Албахари
https://vk.com/wall-54530371_62347
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Почему называется "замыкание"?
От: kov_serg Россия  
Дата: 11.02.22 06:32
Оценка:
Здравствуйте, netch80, Вы писали:

N>Лингвисты говорят, что в индоевропейском тот корень (do̅, dəH, как угодно), который дал русское "дать", изначально имел смысл двустороннего обмена (и в некоторых потомках поэтому получил смысл "взять", а не "дать").

N>Это я к тому, что смысл термина будет зависеть от того, с какой стороны посмотреть — для вызывающего, да, это разрыв зависимостей, а для создаваемого объекта, наоборот, их создание
N>Созданная функция как бы "замыкается в себе" со всеми данными.

N>Ещё похожий эффект: слово virtual со смыслом "настоящий", "реальный" (и сейчас virtually — на самом деле), получил смысл "иллюзорный, не существующий в реальности" сначала через "виртуальную память", а потом "виртуальную реальность". Точно так же: видимое реальным для того, кто внутри — но иллюзорное для того, кто снаружи...

N>А могли назвать semblant memory, хотя у этого тоже были бы свои странные ассоциации.

N>Это я не про непосредственную историю (рядом пересказали со ссылкой), но к тому, что такое употребление имело все возможности успешно закрепиться, потому что есть логика, которой оно не противоречит.

Еще big и litte endian туда же
Re[2]: Почему называется "замыкание"?
От: LaptevVV Россия  
Дата: 11.02.22 06:53
Оценка:
N>Созданная функция как бы "замыкается в себе" со всеми данными.
Дык это любая функция со своими локальными переменными — "вещь в себе"
N>Это я не про непосредственную историю (рядом пересказали со ссылкой), но к тому, что такое употребление имело все возможности успешно закрепиться, потому что есть логика, которой оно не противоречит.
Вот жеж, блин, лингвистические изыскания проводить надо...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Почему называется "замыкание"?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.02.22 07:23
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

N>>Созданная функция как бы "замыкается в себе" со всеми данными.

LVV>Дык это любая функция со своими локальными переменными — "вещь в себе"

нет, пока её не начинают экспортировать с частью состояния наружу (называется, функция становится first class citizen).

N>>Это я не про непосредственную историю (рядом пересказали со ссылкой), но к тому, что такое употребление имело все возможности успешно закрепиться, потому что есть логика, которой оно не противоречит.

LVV>Вот жеж, блин, лингвистические изыскания проводить надо...

Увы и естественно.
The God is real, unless declared integer.
Re: Почему называется "замыкание"?
От: gyraboo  
Дата: 11.02.22 07:47
Оценка: 1 (1) +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Я тут уже как-то задавал вопрос, почему фактический разрыв зависимостей называется внедрением зависимостей.

LVV>Внятного ответа не получил.

Потому что перевод "внедрение" — исторически некорректный. Внедрение — это когда чего-то нет и мы это "внедряем".
А вот калька "инъекция" передает смысл более правильно.
Зависимость ведь уже есть на теле пациента (читай "системы") в виде отметки для укола или рекомендации врача что "пациенту нужно такое-то лекарство" (читай "тип инжектируемого поля уже объявлен"). Инъекция — это введение укола с лекарством (инстанцированным DI-контейнером объектом данного типа или его подтипов).
Re: Почему называется "замыкание"?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.02.22 09:37
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>почему замыкание называется замыканием?


В русском для closure в этом контексте более близкими по смыслу являются "закрытие" или "укупорка", но эти слова выглядят откровенно "неофициально", и плохо подходят на роль терминов.

Еще очень удачно, что получилось внедрить хотя бы "замыкание". С нынешними тенденциями легко могли бы запустить транскрипцию вроде "кложа/кложи/кложей", искренне полагая, что подобное словообразование обогатит технический русский.
Re: Почему называется "замыкание"?
От: fk0 Россия https://fk0.name
Дата: 13.02.22 00:05
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Я тут уже как-то задавал вопрос, почему фактический разрыв зависимостей называется внедрением зависимостей.


Двоемыслие.

Почему у опсосов "безлимитные тарифы" подразумевают ограниченный траффик?
Например "безлимитный интернет 50Гбайт". Или "безлимитный интернет со скоростью 20МБит".
По-настоящему безлимитный инернет получается -- это который по сколько-то рублей за мегабайт.
Пока средства на счету не кончатся -- никаких лимитов.
Re[2]: Почему называется "замыкание"?
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.02.22 03:03
Оценка: +2
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Еще очень удачно, что получилось внедрить хотя бы "замыкание". С нынешними тенденциями легко могли бы запустить транскрипцию вроде "кложа/кложи/кложей", искренне полагая, что подобное словообразование обогатит технический русский.
Не, кложа — это такой лисп поверх JVM.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Почему называется "замыкание"?
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.02.22 03:04
Оценка:
Здравствуйте, fk0, Вы писали:
fk0>По-настоящему безлимитный инернет получается -- это который по сколько-то рублей за мегабайт.
fk0>Пока средства на счету не кончатся -- никаких лимитов.
Нет, это уже какой-то лимитированный безлимит. Настоящий безлимит должен продолжаться, невзирая на остаток на счету.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.