LINUX.ORG.RU

Ленивое программирование и ленивые вычисления


1

0

О пользе отсроченной обработки функций. Ленивое программирование -- обобщенное понятие для отсрочки обработки функции или запроса до тех пор, пока не понадобятся результаты. Это понятие имеет многочисленные применения, от очевидных до скрытых. Понимание термина "ленивое программирование" может помочь избавить ваш код от ненужных вычислений и реструктурировать программы так, чтобы они были более проблемно-ориентированы.

>>> Подробности

★★★

Проверено: Shaman007 ()

Лениво писать. Скажу лишь, что отложенные вычисления очень удобны. Особливо при парсинге сложных структур, типа исходных кодов.

Zmacs
()
Ответ на: комментарий от Zmacs

у нас на работе на С++ был написан "ленивый" парсер http & mail для наших проектов. Очень удобно и в смысле производительности очень хорошо

ott ★★★★★
()

Начну-ка я ковыряться в схеме. drscheme уже с год как на компе валяеться =)

anonymousI
()
Ответ на: комментарий от Teak

>> Вот эта наша пустая напыщенность мне и не нравится...

Называть напыщенностью адекватные названия это мгяко говоря - личное мнение автора.

anonymous
()
Ответ на: комментарий от anonymous

> Называть напыщенностью адекватные названия

когда "lazy" переводится как "отложенный" - это именно напыщенность. "Lazy" означает "ленивый", можешь посмотреть в словаре.

tailgunner ★★★★★
()

спасибо, почитал. довольно занятно. чем-то напоминает autofs ;)

alex_custov ★★★★★
()

Ленивые вычисления - это Doom на языке ЛОГО (язык "черепашки") гыыыы :)))

anonymous
()
Ответ на: комментарий от tailgunner

>"Lazy" означает "ленивый", можешь посмотреть в словаре

Переводить с програмерского(в данном случае) "языка" используя словарь английского - бессмысленное занятие. "lazy evaluation" переводится с програмерского сленга на английский язык как "delayed evaluation"ю и англо-русский словарь следует применять к последнему.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

> Переводить с програмерского(в данном случае) "языка" используя словарь английского - бессмысленное занятие

И почему же? По-моему, "ленивый" - это перевод, отражающий cуть термина и при этом буквальным. В чем проблема?

> "lazy evaluation" переводится с програмерского сленга на английский язык как "delayed evaluation"

Ну и? Сленг следует переводить сленгом, наукоподобие - наукоподобием. Встретится термин "deferred evaluation" - вот его перевести как "отложенные вычисления".

tailgunner ★★★★★
()
Ответ на: комментарий от DonkeyHot

Фантазёры, пытающиеся перевести "lazy evaluation" как "отложенные вычисления", и не в курсе, похоже, что в русском программистском языке термин "ленивые вычисления" устоялся уже давно.

Whoo ★★
()
Ответ на: комментарий от tailgunner

В словаре компьютерных терминов, lazy evaluation - отложенные вычисления. Перевод технических текстов отличается от перевода публицистики или художественной литературы. "Тупой" перевод приводит к неправильному пониманию содержания текста и, в большинстве случаев, к неправильным выводам. Думаю, что эти аксиомы знакомы всем, кто занимался переводом технических текстов в объеме программы ВУЗа.

anonymous
()
Ответ на: комментарий от anonymous

> Перевод технических текстов отличается от перевода публицистики или художественной литературы.

Не в этом случае.

> "Тупой" перевод приводит к неправильному пониманию содержания текста

То есть перевод "ленивый" не отражает сущности англоязычного термина? Не думаю, что хоть кто-то с вами согласится.

tailgunner ★★★★★
()
Ответ на: комментарий от filin

>есть похожая хрень в виде либы для "полуязыка" С++

наверное для некоторых будет небезинтересно узнать, что в С++ есть такая штука как expresion templates, которяю по сути автоматически реализует отложенные вычисления. например что для матриц A и В, и выражения С = A + B матрица С содержит некий объект expresion, который вычисляется только при вызове скажем оператора (i, j) для конкретного элемента C(i, j). т.е. сумма (или все что угодно) вычисляется только для тех элементов, к которым есть обращение и именно в том месте где это обращение происходит. т.е.

С = A + B; // ничего не вычисляется

int value = C(i, j); // вычисляется ТОЛЬКО A(i, j) + B(i, j)

blitz++ яркий пример.

aydef
()
Ответ на: комментарий от aydef

пардон за ошибки.

наверное для некоторых будет небезинтересно узнать, что в С++ есть такая штука как expression templates, которая по сути автоматически реализует отложенные вычисления. например для матриц A, В и выражения С = A + B, матрица С содержит некий объект expression, который вычисляется только при вызове оператора (i, j) для конкретного элемента C(i, j). т.е. сумма (или все что угодно) вычисляется только для тех элементов, к которым есть обращение и именно в том месте где это обращение происходит. т.е.

С = A + B; // ничего не вычисляется

int value = C(i, j); // вычисляется ТОЛЬКО A(i, j) + B(i, j)

blitz++ яркий пример.

aydef
()
Ответ на: комментарий от tailgunner

> То есть перевод "ленивый" не отражает сущности англоязычного термина? Не думаю, что хоть кто-то с вами согласится.

В руссом языке (см. словари Ожегова, Ушакова, Энциклопедический) слово ленивый означает: 1. Любящий безделье, не желающий трудиться 2. Медлительный

Из контекста рассмтриваемого документа: Ленивое программирование -- обобщенное понятие для отсрочки обработки функции или запроса до тех пор, пока не понадобятся результаты.

отсрочка обработки до момента потребности - это признак рациональности, оптимальности (в смысле затрат вычислительных ресурсов) и т.п., но не ни единым разом не признак медлительности, безделья, отказа от труда в целом.

Если общепринятое понятие слова "ленивый" былобы "не желающий трудиться понапрасну (или безцельно)", то перевод "ленивые вычисления" отражал суть термина.

Ну а в контексте существующих определений (при условии что "ленивые вычисления" - верный термин) можно сделать вывод, что и термин "медлительные (тормознутые (слэнговое выражение)) вычисления" также отражает суть термина :) P.S. А за всех отвечать как-то... не совсем корректно:)

anonymous
()
Ответ на: комментарий от anonymous

> В руссом языке (см. словари Ожегова, Ушакова, Энциклопедический) слово ленивый означает: 1. Любящий безделье, не желающий трудиться 2. Медлительный

По-моему, "не желающий трудится" вполне подходит.

Кстати, к термину "отложенный" тоже можно придраться - фраза "отложенные вычисления" не означает, что эти вычисления могут быть не выполнены _вообще_.

> А за всех отвечать как-то... не совсем корректно:)

Там было написано "я думаю" - то есть, я высказал _личное_ мнение.

tailgunner ★★★★★
()
Ответ на: комментарий от Begemoth

> > > обобщенное понятие для отсрочки обработки функции или запроса до тех пор, пока не понадобятся результаты.

> > А разве это не задача оптимизирующего компилятора?

> Нет, поскольку функции в большинстве языков не являются чистыми (т.е. результат функции может зависеть не только от ее параметров, кроме того функция может иметь побочные эффекты).

в меру своего непонимания попробую немного пояснить :)

первое утверждение верно

второе утверждение в идеале тоже верно

третье утверждение верно в реальной жизни, где побочные эффекты связаны с наличием ввода-вывода (сюда же можно отнести и модификатор volatile, запрещающий "выоптимизацию" переменной/указателя, которая может использоваться для доступа к какому-то железу отображённому в память) и динамической линковки (например глобальные переменные, используемые в нескольких разделяемых библиотеках компилятор опять же не в праве "выоптимизировать" при компиляции, поскольку версии этих библиотек могут меняться на этапе выполнения, а не компиляции, в принципе эту задачу можно переложить на плечи динамического линковщика, но похоже его авторы этим не заморачиваются, может овчинка выделки не стоит, а может слишком сложно, но я думаю это рано или поздно будет сделано, возможно когда JIT'ы начнут наступать на пятки :) )

сам подход отложенных вычислений (назову на русском его именно так ;) ) мне весьма интересен с точки concurrent programming, куда сейчас движется железо (задирая частоту уже уткнулись нелинейный рост энерговыделения, порог которого уже достигнут, киловатные блоки питания для десктопа никто покупать не будет). Идея заключается в асинхронном запуске вычислений в параллельном потоке сразу по изменению параметров и последующая синхронизация по требованию результатов. Возможно снижение эффективности использования выч ресурсов (многократные параллельные перевычисления по изменениям при меньшем числе требований результатов), при уменьшении основного времени вычислений (под этим я понимаю например wall clock time). Поскольку большая часть выч ресурсов скоро будет простаивать (число ядер растёт, а число программ умеющих их использовать растёт хуже) такой подход имеет право на жизнь, пока не перепишут всё на FP-языках :)

filin ★★
()
Ответ на: комментарий от stalkerg

> в Python операторы or и and являются ленивыми.

в С/С++ тоже самое с && и ||, но это не подход к вычислениям, а скорее оптимизационный хак на уровне компилятора, про который надо помнить чтобы на него не напороться

filin ★★
()
Ответ на: комментарий от filin

кстати его можно с толком использовать, я так делал с целью сокращения кода, только читабельность кода от этого падает до нуля :)))

filin ★★
()
Ответ на: комментарий от filin

В C/C++ - это не оптимизационный хак компилятора - это 
стандартизированная черта языка, которая может использоваться, например, 
следующим образом:

bar* foo;

...

if (foo && foo->quux(.....)) {
  // чегой-то там делаем :-)
}

Этот код должен корректно работать на всех, поддерживающих стандарт 
языка, компиляторах.

Begemoth ★★★★★
()
Ответ на: комментарий от filin

Если использовать || и && вместо if-ов, то согласен :-)

Begemoth ★★★★★
()
Ответ на: комментарий от filin

Вызывающе неверная информация в последних двух сообщениях.

1. Это не хак. 2. Все _программисты_ это знают, ибо вещь стандартная. 3. Использовать не "можно", а _нужно_.

Быдлокодеры идут в ж.. жабу. %)

anonymous
()
Ответ на: комментарий от anonymous

Хех, опередили.. %)

в последних двух сообщениях filin конечно же..

anonymous
()
Ответ на: комментарий от filin

> второе утверждение в идеале тоже верно

Этот идеал - отсутствие ввода/вывода и частичных функций, да и кроме 
того ленивость может быть полезна и в случае с вводом/выводом (e.g. 
readFile и hGetContents в Haskell).

В ряде случаев нужно быть уверенным, что вычисления выполняются лениво:

cond :: [(Boolean, a)] -> a
cond [] = _|_ -- или bot, как точно не помню :-)
cond (c,a):cas | c = a
               | otherwise = cond cas

foo x x0 = cond [(length x > 0, head x)
                 (True, x0)]

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

У меня всё-таки ощущение, что чистые функции нужно применять только в математических вычислениях (и то не во всех).

Системный софт должен быть заточен под постоянно изменяющееся состояние железа.

К вопросу о чистых языках: http://xkcd.com/c221.html

Davidov ★★★★
()
Ответ на: комментарий от Davidov

для этого в Haskell добавили монады :-) Вообще чистые функции - все чему не нужен ввод-вывод, например, синтаксический анализ, формирование кода, ....

> Системный софт должен быть заточен под постоянно изменяющееся состояние железа.

Уточни термин "системный софт"

Begemoth ★★★★★
()
Ответ на: комментарий от stalkerg

stalkerg, действительно and и or в Питоне ленивые и эти как их... генераторы наверное тоже (не знаю). Но пассаж в Википедии про lambda это какая-то ерунда: это же просто определение функции, нет? Пусть и анонимной, но всё-таки strict.

anonymous
()
Ответ на: комментарий от anonymous

это не ерунда, посмотри как delay и force в R5RS реализуются

Begemoth ★★★★★
()
Ответ на: комментарий от anonymous

> 1. Это не хак. 2. Все _программисты_ это знают, ибо вещь стандартная. 3. Использовать не "можно", а _нужно_.

просто здорово, что на лоре тусуется знающий народ :), про стандарт в языке я в курсе, но во-первых он придуман всё равно с целью оптимизации, а во-вторых это стандартизованная оптимизация уровня компилятора, не доступная для управления программисту, именно это я и хотел подчеркнуть. Использовать _нужно_ в прозрачных случаях, в системных скриптах на sh строки вида

[ $a -ne "AAA" ] || do_something

встречаются на каждом шагу и это оправдано, а вот например (это из моего парсера):

if ( pair( pe, size - ( pe - expr ), '(', ')' ) || decompose( pos + 1, pe, 0, ccoun ) ) ...

если pair может модифицировать входные параметры (посылаемые через ссылку), а decompose (к тому же он рекурсивный здесь) может менять состояние (какие-то общие переменные - глобальные или member-data) как и pair, но по другому (то есть те самые side-effects), то разобраться челу не знакомому с кодом будет мягко говоря непросто, матюки обеспечены точно :)

filin ★★
()
Ответ на: комментарий от tailgunner

>"ленивый" - это перевод, отражающий cуть термина и при этом буквальным. В чем проблема?

В том, что "ленивые вычисления" - это "вычисления, которые не хотят работать". Когда вычисления обзавелись умением не-хотеть чего-либо?

Вторая проблема в том, что в случае "добуквенного" перевода терминов понимание текста часто требует перевода обратно, что, ввиду отсутствия взаимо-однозначного соответствия слов разных языков, превращается в угадывание смысла.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Я не сильно опоздал?

Ты полностью прав. Проблема в том, что многие просто не знакомы с русскоязычной терминологией.
Если человек воспитывался на современных переводах а-ля "Профессиональный отсос кегли за 21 день",
а не на отечественных учебниках, то у него и синглетон будет "синглтон".

gpg
()
Ответ на: комментарий от DonkeyHot

> В том, что "ленивые вычисления" - это "вычисления, которые не хотят работать". Когда вычисления обзавелись умением не-хотеть чего-либо?

"Ленивые вычисления" - это вычисления, выполняющиеся лениво (выполняющиеся, заметь страдательный залог) исполняющей системой языка. То есть - если у исполняющая системы будет возможность _не выпонить_ эти вычисления, она их не выполнит;

gpg> Если человек воспитывался на современных переводах

Ты попал пальцем в небо - я воспитывался на советской (и переведенной в советские времена) компьютерной литературе.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ленивый, в общегражданском смысле, --- это не желающий работать. А ленивый, в смысле lazy evaluation, --- это не желающий работать _зря_. Слово "зря" значимо и оно не отображено в слове "ленивый". Поэтому термин "отложенные вычисления" точнее передаёт суть.

ugoday ★★★★★
()
Ответ на: комментарий от tailgunner

> когда "lazy" переводится как "отложенный" - это именно напыщенность. "Lazy" означает "ленивый", можешь посмотреть в словаре.

> Ты попал пальцем в небо - я воспитывался на советской (и переведенной в советские времена) компьютерной литературе.

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

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

Вполне нормально сказать продавцу "два хотдога" (заимствованние термина) или "две сосиски в тесте" ("местный" термин),
но "две горячие собаки" будут восприняты как идиотизм или порядком остопиздевшая шутка.

Это я попытался проиллюстрировать несерьёзность аппелирования к дословному переводу.


Бля, а ведь так хотел быть кратким.

gpg
()
Ответ на: комментарий от gpg

"горячая собака" длиннее, чем "хотдог", а "ленивые" короче, чем "отложенные". Смысл же термина "ленивые" в данном контексте понятен решительно всем, кому его надо понимать.

Прошу обойтись без мата.

Teak ★★★★★
()
Ответ на: комментарий от Teak

> "горячая собака" длиннее, чем "хотдог", а "ленивые" короче, чем "отложенные".
Это плюс. Но не аргумент. "О-вычисления" ещё короче.

> Смысл же термина "ленивые" в данном контексте понятен решительно всем, кому его надо понимать.
"Отучаемся говорить за всех" (с)
Когда я впервые столкнулся с "ленивыми вычислениями" я догадался только по контексту. Обожаю современных переводчиков.

> Прошу обойтись без мата.
Могу я, в свою очередь, попросить обойтись без ханжеского отношения к русскому языку?

gpg
()
Ответ на: комментарий от gpg

> не очень корректной кальки с английского

И ее некорректность в чем? В том, что лично ты успел привыкнуть к термину "отложенный"? И почему ты считаешь корректной другую кальку - "отложенные вычисления" ("delayed evaluation")?

А насчет примера с "хотдог" - спорить не стану, только замечу, что доказательство по аналогии считается жульничеством.

tailgunner ★★★★★
()
Ответ на: комментарий от gpg

> Это плюс. Но не аргумент.

Не понимаю этого. Что значит "аргумент"? И почему "аргумент" важнее плюса? :) Я за то, чтобы не предпочитать длинные термины коротким. К сожалению, в русском языке традиция противоположная. Мне это не нравится.

> Когда я впервые столкнулся с "ленивыми вычислениями" я догадался только по контексту. Обожаю современных переводчиков.

Итак, теперь ты это понимаешь, верно?

> Могу я, в свою очередь, попросить обойтись без ханжеского отношения к русскому языку?

А можно поконкретнее?

Teak ★★★★★
()
Ответ на: комментарий от tailgunner

> И ее некорректность в чем?
См. предыдущие посты.

> И почему ты считаешь корректной другую кальку - "отложенные вычисления" ("delayed evaluation")?
1. См. пред. посты. Всё уже разжевали и не один раз.
2. Уж всяко не потому, что это дословный перевод чего бы то ни было.

> А насчет примера с "хотдог" - спорить не стану, только замечу, что доказательство по аналогии считается жульничеством.
Ай-яй-яй. Логика-то хромает.
> И почему же? По-моему, "ленивый" - это перевод, отражающий cуть термина и при этом буквальным. В чем проблема?
По поводу отражения сути не буду повторять уже высказавшихся.
А вот миф о преимуществе буквального перевода я вполне успешно развеял конкретным примером.
При чём тут какое-то доказательство по аналогии?

gpg
()
Ответ на: комментарий от gpg

>> И ее некорректность в чем?

> См. предыдущие посты.

Ясный и недвусмысленный ответ, ага. Хоть бы ссылку дал. Или цитату.

>> И почему ты считаешь корректной другую кальку - "отложенные вычисления" ("delayed evaluation")?

>1. См. пред. посты. Всё уже разжевали и не один раз.

О преимуществе одной кальки перед другой? Не припомню :)

> При чём тут какое-то доказательство по аналогии?

От человека, который сравнил

tailgunner ★★★★★
()
Ответ на: комментарий от Teak

> Не понимаю этого. Что значит "аргумент"? И почему "аргумент" важнее плюса? :) Я за то, чтобы не предпочитать длинные термины коротким. К
> сожалению, в русском языке традиция противоположная. Мне это не нравится.

Аргумент - внеличностная причина. "Потому что в стандарте сказано ..."
Плюс - личностная. "Потому что это удобнее". Подразумевается, что удобнее говорящему. Что не всегда истинно для слушающего.
С аргументом не поспоришь, плюсы у каждого свои.

> Итак, теперь ты это понимаешь, верно?
Это не аргумент. Найдётся человек, который поймёт более "дословно".
"Отложенные вычисления" дееспособному человеку истолковать превратно просто невозможно.
Ну и самое главное, я имею твёрдую уверенность, что "отложенные вычисления" - изначальный термин. "Ленивые" - отрыжка ленивого переводчика. Очень напоминает подстрочник, выданный за окончательный перевод (что в последние годы скорее правило, нежели исключение).

> А можно поконкретнее?
Не бери в голову, это так, в порядке флейма. Ты пошутил, я посмеялся.

gpg
()
Ответ на: комментарий от tailgunner

> Ясный и недвусмысленный ответ, ага. Хоть бы ссылку дал. Или цитату.
Кино и немцы.
http://www.linux.org.ru/profile/gpg/view-message.jsp?msgid=1875715&nocach...
http://www.linux.org.ru/profile/gpg/view-message.jsp?msgid=1875715&nocach...
http://www.linux.org.ru/profile/gpg/view-message.jsp?msgid=1875715&nocach...
Вспомнил?

> О преимуществе одной кальки перед другой? Не припомню :)
Ещё раз:
http://www.linux.org.ru/profile/gpg/view-message.jsp?msgid=1875715&nocach...
http://www.linux.org.ru/profile/gpg/view-message.jsp?msgid=1875715&nocach...
http://www.linux.org.ru/profile/gpg/view-message.jsp?msgid=1875715&nocach...
А теперь?

>> При чём тут какое-то доказательство по аналогии?
> От человека, который сравнил
"Она схватила ему за руку и многократно спросила, где ты дел деньги?!"
Сдаюсь, ты победил.

gpg
()
Ответ на: комментарий от gpg

> Аргумент - внеличностная причина. "Потому что в стандарте сказано ..." Плюс - личностная. "Потому что это удобнее". Подразумевается, что удобнее говорящему. Что не всегда истинно для слушающего. С аргументом не поспоришь, плюсы у каждого свои.

Тогда "аргументированно" спорить на эту тему просто невозможно. :) Что может быть субъективнее языковых предпочтений? Стандарты тут дело гнилое, они лишь пытаются зафиксировать фактическое состояние языка, да и это дело малореальное.

Я говорил как раз о плюсах. Цель языка - служить общению, и чем короче используемые термины, тем меньше непроизводительные траты времени. Оправданием более длинным терминам может быть лишь то, что они позволяют устранить неоднозначность (о чём ты собственно и говоришь), но это не тот случай. И вообще о терминах надо просто договориться. Разумный человек, впервые услышавший этот термин, пойдёт в гугль и через три минуты будет знать, что это то, что он привык называть "отложенными вычислениями". Возможно, термин "ленивые" ему будет не нравится эстетически или как-то ещё, но о неоднозначности говорить не приходится.

Наверное, в художественной литературе требования к языку должны быть менее утилитарными, но требовать того же от технического жаргона не имеет смысла.

Я не против того, чтобы желающие говорили именно "отложенные", но я против того, чтобы альтернативный (более жаргонный и короткий) термин объявлялся неправильным.

Teak ★★★★★
()
Ответ на: комментарий от Teak

> Я не против того, чтобы желающие говорили именно "отложенные", но я против того, чтобы альтернативный (более жаргонный и короткий)
> термин объявлялся неправильным.
Против этого никто и не выступает. Мало того, серьёзно о кошерности жаргонизмов можно рассуждать только с оговорками,
превосходящими своим количеством сами рассуждения.
Если б ты не относился так трепетно к табуированной лексике, я б привёл несколько жаргонизмов нашего дивижена.
И пусть бы кто-то попробовал утверждать, что у нас в дивижене принято называть эти вещи по другому.
Меня раздосадовали попытки злобных маргиналов объявить неправильным как раз "менее жаргонный" термин.

gpg
()
Ответ на: комментарий от gpg

> Кино и немцы.

> ...

> Вспомнил?

Ах, это... ну оно меня тогда не убедило, и сейчас не убеждает.

> Сдаюсь, ты победил.

Чёрт, а я настроился на марафонский флейм :(

P.S. надо быть начисто лишенным чувства юмора, чтобы не увидеть иронии в термине "lazy evaluation". Именно эту иронию и теряет унылый наукоподобный термин "отложенные вычисления". У вражеских программистов есть чувство юмора - "LISP", "hashing", названия половины команд UNIX (awk, grep, cat), да много еще можно вспомнить. А мы все из себя такие сурррръёзные...

tailgunner ★★★★★
()
Ответ на: комментарий от gpg

> попытки злобных маргиналов

Да, мы такие >8-E

> объявить неправильным как раз "менее жаргонный" термин.

Никто не объявлял неправильным _термин_. Мы, злобные маргиналы, пытались объявить неправильным _перевод_. Но, видимо, нащи злобномаргинальные планы разбились о каменные твердыни, не подточенные чувством юмора :(

tailgunner ★★★★★
()
Ответ на: комментарий от gpg

> Если б ты не относился так трепетно к табуированной лексике

Я к ней нормально отношусь, но на данном форуме она считается неуместной, и это даже закреплено в правилах. Да-да, я ханжа. :) На работе и с друзьями разговариваю матом, а на этом форуме и например с родителями - без мата. Вот такое вот лицемерие. :)

Teak ★★★★★
()

По терминологии/переводу: "ленивы" не вычисления сами по себе, а порядок их вычисления. Соответственно, в русской литературе можно писать "ленивый порядок вычислений", я видел такое н-р у Сергея Зефирова, thesz.livejournal.com

chumpa
()
Ответ на: комментарий от gpg

>"О-вычисления" ещё короче.

Объектные?
Ориентированные?
Ортогональные?

:)

KRoN73 ★★★★★
()
Ответ на: комментарий от gpg

>"Ленивые" - отрыжка ленивого переводчика. Очень напоминает подстрочник, выданный за окончательный перевод

Термин этот был введён ещё в 1970-х гг, ЕМНИП. Во времена, когда "ленивые переводчики", равно как и аналогичные редактора не особо долго засиживались в издательской деятельности.

По крайней мере в литературе начала 1980-х гг. этот термин уже используется.

...

А что, кстати, давайте ещё и всю видеотерминологию перепишем, например, из-за явно "ленивой" кальки: "offline" -> "нелинейный"? :D

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.