Запитання з тегом «lazy-evaluation»

Ледача оцінка стосується різноманітних понять, які прагнуть уникнути оцінки виразу, якщо його значення не потрібне, та ділитися результатами оцінки виразу між усіма його використаннями, так що жодне вираження не потрібно оцінювати більше одного разу.

5
Що такого поганого в лінивому введенні / виведенні?
Я загалом чув, що у виробничому коді слід уникати використання лінивих входів / виходів. Моє питання: чому? Чи коли-небудь нормально використовувати лінивий ввід-вивід за межами просто іграшок? І що робить альтернативи (наприклад, перелічувачі) кращими?

6
withFilter замість фільтра
Чи завжди ефективніше використовувати withFilter замість фільтра, коли згодом застосовуються такі функції, як map, flatmap тощо? Чому підтримуються лише карти, плоскі карти та foreach? (Очікувані функції, такі як forall / також існують)

3
У паралельних нескінченних потоків Java не вистачає пам'яті
Я намагаюся зрозуміти, чому наведена нижче програма Java дає OutOfMemoryError, а відповідна програма без .parallel()цього не дає. System.out.println(Stream .iterate(1, i -> i+1) .parallel() .flatMap(n -> Stream.iterate(n, i -> i+n)) .mapToInt(Integer::intValue) .limit(100_000_000) .sum() ); У мене є два питання: Який запланований вихід цієї програми? Без .parallel()цього здається, що це просто виводить, …

1
Які правила існують щодо функції a -> (), що оцінюється в Haskell?
Як заголовок: як є гарантія оцінювання блоку повернення функції Haskell? Можна подумати, що немає необхідності проводити будь-яку оцінку в такому випадку, компілятор міг би замінити всі такі виклики на негайне ()значення, якщо немає явних запитів на суворість, і в цьому випадку код може вирішити, чи слід повернення ()або дно. Я …


5
Як зробити цей алгоритм лазерним, не повторюючи себе?
(Натхненний моєю відповіддю на це запитання .) Розглянемо цей код (він повинен знайти найбільший елемент, менший або рівний даному входу): data TreeMap v = Leaf | Node Integer v (TreeMap v) (TreeMap v) deriving (Show, Read, Eq, Ord) closestLess :: Integer -> TreeMap v -> Maybe (Integer, v) closestLess i …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.