Запитання з тегом «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 tbl як вектор, з tbl з бек-ендом бази даних (тобто кадр / таблицю даних не можна безпосередньо підмножити)? require(dplyr) db &lt;- src_sqlite(tempfile(), create = TRUE) iris2 &lt;- copy_to(db, iris) iris2$Species # NULL Це було б занадто просто, так collect(select(iris2, Species))[, 1] …

6
Яка (прихована) вартість лінивого валу Скали?
Одна зручна особливість Scala полягає в тому lazy val, коли оцінка valзатримки затримується до необхідності (при першому доступі). Звичайно, lazy valобов'язково мають бути деякі накладні витрати - десь Scala повинен відслідковувати, чи значення вже було оцінено, і оцінку потрібно синхронізувати, тому що кілька потоків можуть намагатися отримати доступ до цього …

14
Поєднання потоків за допомогою JDK8 з лямбда (java.util.stream.Streams.zip)
У JDK 8 з лямбда-b93 був клас java.util.stream.Streams.zip в b93, який можна було використовувати для поштових потоків (це проілюстровано у підручнику « Дослідження Java8 Lambdas». Частина 1 від Dhananjay Nene ). Ця функція: Створюється лінивий і послідовний поєднаний Потік, елементи якого є результатом поєднання елементів двох потоків. Однак у 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", …

4
згорнути проти поведінки складки з нескінченними списками
Код функції 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
Кутовий ледачий одноразовий зв’язок для виразів
AngularJS має нову функцію з версії 1.3.0-beta.10: "ледача одноразова прив'язка" . Прості вирази можуть бути префіксальними ::, кажучи кутовим припинити перегляд після того, як вираз спочатку оцінили. Наведений загальний приклад - це щось на зразок: &lt;div&gt;{{::user.name}}&lt;/div&gt; Чи існує подібний синтаксис для виразів, як наступні? &lt;div ng-if="user.isSomething &amp;&amp; user.isSomethingElse"&gt;&lt;/div&gt; &lt;div ng-class="{classNameFoo: …

7
Які пункти суворості Хаскелла?
Всі ми знаємо (або повинні знати), що Хаскелл ледачий за замовчуванням. Ніщо не оцінюється, поки не повинно бути оцінено. Тож коли треба щось оцінювати? Є моменти, коли Хаскелл повинен бути суворим. Я називаю це "пунктами суворості", хоча цей конкретний термін не настільки поширений, як я думав. За моїми словами: Зменшення …

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.