|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||||||
Ленивые вычисления03.07.2013, 10:25. Показов 12425. Ответов 27
____Много есть информации под boost, так же не отстает шарп и опережает всех хаскель. В плюсах только со стандарта C++0x. Даже попалась цельная Qt-шная библиотека для этого дела. Вообще концепция ленивых вычислений зародилась для функциональных языков. Но это все придумано, если возвращаться к C++, для удобства оперирования функторами и еще каких-то таинств. Но по сути же простые "ленивые вычисления" доступны во многих языках, компиляторы которых действуют по некоему принципу call by value. То есть когда значение получено, дальше его обсчитывать смысла нет. Если первый операнд операции && ложен, то вычислять следующие не нужно.
____Общий смысл "ленивых вычислений" в том, что экономится время на проведении вычислений, результаты которых заведомо не будут использованы в дальнейшем программой. Соответственно, за счет снижения объемов вычислений повышается и производительность программы, а за счет отсутствия необходимости хранить в памяти результаты вычислений снижаются и требования программы к памяти. Помимо этого, ленивые вычисления избавляют программиста от необходимости следить за тем, какие именно вычисления будут в дальнейшем востребованы программой, а какие, напротив, окажутся совершенно бесполезными. Последнее не всегда хорошо, учитывая опять же гибкость плюсов, в которых компилятор не даст, вопреки обычному подходу, поступать как заблагорассудится программисту. Но на то в принципе и расчет. Принцип "ленивого вычисления" проще всего рассмотреть на следующем примере:
Оба приведенных кода делают одно и то же. Отличие лишь в компромиссе между читабельностью кода и его объемом.
2
|
|||||||||||
| 03.07.2013, 10:25 | |
|
Ответы с готовыми решениями:
27
Ленивые вычисления в C++ Получение i-ого элемента массива без вычисления всех элементов (Ленивые вычисления) Ленивые вычисления |
|
Higher
|
|||
| 03.07.2013, 21:29 | |||
|
Вообще, хороший пример ленивых вычислений - LINQ/yield в шарпе. В плюсах я ничего подобного не замечал. Можно, конечно, проэмулировать, но в язык это не встроено. Да и не нужно оно особо в плюсах-то...
0
|
|||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|||||||||||
| 03.07.2013, 22:38 | |||||||||||
|
В асме уже появились составные операторы? Там же if (a && b && c) принципиально вычисляется как
0
|
|||||||||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 04.07.2013, 02:21 | |
|
Хороший пример - Copy on write.
Вот еще: Создать класс для сортировки массива по убыванию любым способом Там пока не требуется вывод на экран, данные не сортируются. Чаще делают подсчет результата функции лишь при обращении, при этом ставят флаг для того, чтобы не пересчитывать. Пример с операторами в условии - бред, оно же итак представиться в компиляторе как во втором варианте, а вот писать таким способом(множество if-ов) - гробить читаемость программы.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||
| 04.07.2013, 08:48 [ТС] | ||||
|
0
|
||||
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
| 05.07.2013, 00:18 | |
|
SatanaXIII, я имею в виду логику вычислений. То есть до проверки B оно не дойдет, если не выполнилось условие A.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||
| 05.07.2013, 10:18 [ТС] | ||
|
0
|
||
| 05.07.2013, 10:18 | |
|
Ленивые вычисления или "я что-то пропустил и в c# есть ссылки на строки?" Ленивые работники и что с этим делать Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k
Составить программу вычисления значения функции для вычисления и вывода на печать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|