Вопросы с тегом «lazy-evaluation»

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

28
Читайте файл по одной строке в node.js?
Я пытаюсь прочитать большой файл по одной строке за раз. Я нашел вопрос о Quora, который касался этой темы, но мне не хватает некоторых связей, чтобы все это соединилось. var Lazy=require("lazy"); new Lazy(process.stdin) .lines .forEach( function(line) { console.log(line.toString()); } ); process.stdin.resume(); Я хотел бы выяснить, как можно читать по одной …

7
Когда я должен использовать Lazy <T>?
Я нашел эту статью о Lazy: лень в C # 4.0 - ленивый Какова лучшая практика, чтобы иметь лучшую производительность, используя ленивые объекты? Может ли кто-нибудь указать мне на практическое использование в реальном приложении? Другими словами, когда я должен использовать это?
327 c#  .net  lazy-evaluation 

3
Что означает восклицательный знак в декларации Haskell?
Я натолкнулся на следующее определение, пытаясь изучить Haskell, используя для этого реальный проект. Я не понимаю, что означает восклицательный знак перед каждым аргументом, и мои книги, похоже, не упоминали об этом. data MidiMessage = MidiMessage !Int !MidiMessage

7
Что делает ленивый вал?
Я заметил, что Scala предоставляют lazy vals. Но я не понимаю, что они делают. scala&gt; val x = 15 x: Int = 15 scala&gt; lazy val y = 13 y: Int = &lt;lazy&gt; scala&gt; x res0: Int = 15 scala&gt; y res1: Int = 13 В REPL показывает , что …

7
Извлечь столбец dplyr tbl как вектор
Есть ли более краткий способ получить один столбец таблицы dplyr в качестве вектора из таблицы с базой данных (т. Е. Фрейм / таблица данных не может быть поднабором напрямую)? require(dplyr) db &lt;- src_sqlite(tempfile(), create = TRUE) iris2 &lt;- copy_to(db, iris) iris2$Species # NULL Это было бы слишком легко, так collect(select(iris2, …

6
Какова (скрытая) стоимость ленивого Вэл Скала?
Одна удобная особенность Scala заключается в том lazy val, что оценка a valоткладывается до тех пор, пока это необходимо (при первом доступе). Конечно, a lazy valдолжен иметь некоторые издержки - где-то Scala должен отслеживать, было ли значение уже оценено, и оценка должна быть синхронизирована, потому что несколько потоков могут пытаться …

14
Сжатие потоков с использованием JDK8 с использованием лямбды (java.util.stream.Streams.zip)
В JDK 8 с лямбдой b93 в b93 был класс java.util.stream.Streams.zip, который можно использовать для архивирования потоков (это показано в учебном пособии Dhananjay Nene, посвященном изучению Java8-лямбд. Часть 1 ). Эта функция: Создает ленивый и последовательный объединенный поток, элементы которого являются результатом объединения элементов двух потоков. Однако в b98 это …

9
Как работают лексические замыкания?
Пока я исследовал проблему с лексическими замыканиями в коде Javascript, я столкнулся с этой проблемой в Python: flist = [] for i in xrange(3): def func(x): return x * i flist.append(func) for f in flist: print f(2) Обратите внимание, что этот пример осторожно избегает lambda. На нем печатается «4 4 …

4
foldl против поведения foldr с бесконечными списками
В коде функции myAny в этом вопросе используется foldr. Он прекращает обработку бесконечного списка, когда предикат удовлетворен. Переписал с помощью foldl: myAny :: (a -&gt; Bool) -&gt; [a] -&gt; Bool myAny p list = foldl step False list where step acc item = p item || acc (Обратите внимание, что …

22
Чем полезна ленивая оценка?
Я давно задавался вопросом, чем полезна ленивая оценка. Мне еще предстоит, чтобы кто-нибудь объяснил мне разумным образом; в основном все сводится к «поверь мне». Примечание: я не имею в виду мемоизацию.


5
Как преобразовать ленивую последовательность в неленивую в Clojure
Я пробовал в Clojure следующее, ожидая возврата класса неленивой последовательности: (.getClass (doall (take 3 (repeatedly rand)))) Однако это все равно возвращается clojure.lang.LazySeq. Я предполагаю, что doallэто оценивает всю последовательность, но возвращает исходную последовательность, поскольку она все еще полезна для мемоизации. Итак, каковы идиоматические средства создания неленивых последовательностей из ленивых?

1
Angular ленивая одноразовая привязка для выражений
Начиная с версии 1.3.0-beta.10, в AngularJS появилась новая функция: «ленивая одноразовая привязка» . Простые выражения могут иметь префикс ::, указывающий angular прекратить наблюдение после того, как выражение было впервые вычислено. Приведенный общий пример выглядит примерно так: &lt;div&gt;{{::user.name}}&lt;/div&gt; Есть ли аналогичный синтаксис для выражений, подобных следующим? &lt;div ng-if="user.isSomething &amp;&amp; user.isSomethingElse"&gt;&lt;/div&gt; &lt;div …

8
Каковы точки строгости Haskell?
Все мы знаем (или должны знать), что Haskell по умолчанию ленив. Ничего не оценивается до тех пор, пока не будет оценено. Итак, когда нужно что-то оценивать? Есть моменты, в которых Haskell должен быть строгим. Я называю это «точками строгости», хотя этот конкретный термин не так широко распространен, как я думал. …

4
Есть ли в Haskell хвостовая рекурсивная оптимизация?
Сегодня я обнаружил команду time в unix и подумал, что буду использовать ее, чтобы проверить разницу во времени выполнения между хвостовой рекурсивной и нормальной рекурсивной функцией в Haskell. Я написал следующие функции: --tail recursive fac :: (Integral a) =&gt; a -&gt; a fac x = fac' x 1 where fac' …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.