Публикации по теме 'lazy-evaluation'


Ловушка ленивых вычислений Java Streams
Вернемся к упомянутой ранее истории. Во-первых, давайте создадим сценарий, который поможет нам понять проблему. Предположим, что наши бизнес-требования включают моделирование документов и контрактов. Каждый документ, состоящий из разделов, может быть заверен на основании заключенного контракта. В нашем случае договор — это набор правил, определяющих ограничения для конкретных разделов документов. Вот ошибочный код, который должен проверять документ в соответствии с данным..

Вопросы по теме 'lazy-evaluation'

Ленивый выбор в форме Django
У меня есть Django my_forms.py вот так: class CarSearchForm(forms.Form): # lots of fields like this bodystyle = forms.ChoiceField(choices=bodystyle_choices()) Каждый выбор, например, («Седан», «Седан (15 машин)»). Таким образом,...
10275 просмотров
schedule 08.09.2021

Python, ленивый список
Возможно ли ленивое вычисление списка в Python? Например a = 1 list = [a] print list #[1] a = 2 print list #[1] Если бы список был настроен на ленивое вычисление, то последняя строка была бы [2]
9960 просмотров
schedule 25.09.2021

Почему этот оператор Haskell не выполняет ленивое вычисление?
У меня определена следующая функция: ex 1 x = 1 ex 0 x = 0 ex b x = b ** x Затем, когда я выполняю следующее: 1 `ex` (sum [1..]) он пытается вычислить сумму бесконечной последовательности, вместо того, чтобы лениться и возвращать 1....
467 просмотров
schedule 09.10.2021

Почему в Scheme нет обещания типа данных?
Объект, возвращаемый delay в схеме, является «обещанием», но обещания не считаются типом (поэтому нет promise? процедуры, и он не указан как тип в R5RS или R6RS). Есть ли сильный резонанс, почему это так? Мне показалось бы вполне естественным,...
389 просмотров
schedule 02.10.2021

Создание двусвязного списка из списка в OCaml
Мне часто говорят, что, используя модуль Lazy в OCaml, можно делать все, что вы можете делать на ленивом языке, таком как Haskell. Чтобы проверить это утверждение, я пытаюсь написать функцию, которая преобразует обычный список в статический...
3400 просмотров
schedule 03.10.2021

Алгоритм с эффективным использованием памяти для задачи `take n (sort xs)` (sorted prefix)
Я хочу взять n самых больших элементов из ленивого списка. Я слышал, что сортировка слиянием, реализованная в Data.List.sort, является ленивой и не создает больше элементов, чем необходимо. Это может быть правдой с точки зрения сравнений, но...
710 просмотров

Удаление синтаксического сахара: понимание списков в Haskell
Можно ли в этом выражении исключить понимание списка: [(i,j) | i <- [1..4], j <- [i+1..4]] Это результат: [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)] Как я могу написать этот фрагмент кода с помощью карты, фильтра и т. Д.?...
2390 просмотров

спящий режим, лениться или не лениться?
У меня есть entity A , который имеет отношение "многие ко многим" с entity B . Итак, макет таблицы: A, AB(mapping table), B Чтобы получить объект сущности A: я вызываю A.getById() , который делает getHibernateTemplate().get(A.class, id) ,...
1827 просмотров

Разве for на самом деле не ленив в clojure?
(take 2 (for [x (range 10) :let [_ (println x)] :when (even? x)] x)) >> (* 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 0 2) Я предположил, что просто веду себя очень тупо. Но нет, оказывается, что Clojure фактически...
1140 просмотров

Ленивый клон списка
У меня есть список с большим количеством элементов. Мне нужно создать копию этого списка, чтобы выполнять с ним операции, не изменяя исходный список. Однако операции обычно обращаются только к небольшой части элементов списка, поэтому неэффективно...
479 просмотров
schedule 02.12.2021

Разъяснение по ленивой оценке и ее эффективности
Я наткнулся на следующее предложение на Real World Haskell: Ленивое вычисление имеет пугающие эффекты. Допустим, мы хотим найти k наименьших значений в несортированном списке. На традиционном языке очевидным подходом было бы отсортировать...
214 просмотров
schedule 03.11.2021

Некоторые вопросы при чтении Почему функциональное программирование важно
Я читаю знаменитую статью Почему так важно функциональное программирование и обнаружил то, чего не могу понять: # P2 # # P3 # # P4 # # P5 # # P6 # # P7 # # P8 # # P9 # # P10 # # P11 # # P12 #
133 просмотров

Ленивое разделение
У меня есть источник элементов, и я хочу отдельно обрабатывать их прогоны, имеющие одинаковое значение ключевой функции. В Python это выглядело бы так for key_val, part in itertools.groupby(src, key_fn): process(key_val, part) Это решение...
712 просмотров
schedule 22.11.2021

Проверить, было ли значение оценено как нормальная форма слабой головы
Можно ли в Haskell проверить, было ли значение оценено как нормальная форма со слабым заголовком? Если функция уже существует, я бы ожидал, что у нее будет подпись вроде evaluated :: a -> IO Bool Есть несколько мест, где живет подобная...
1153 просмотров

Есть ли ленивая версия функции F # Seq.groupBy?
Я хотел бы лениво сгруппировать очень большую последовательность, используя следующий код: // native F# version let groups = Seq.initInfinite id |> Seq.groupBy (fun i -> i % 10) for (i, group) in groups |> Seq.take 5 do...
213 просмотров
schedule 01.11.2021

Может кто-нибудь объяснить это ленивое решение Фибоначчи?
Это код: fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) При оценке fibs представляет собой бесконечный список чисел Фибоначчи. Я не понимаю, как составлен список. zipWith возвращает список, поэтому при сжатии fibs можно получить...
303 просмотров

Согласование np.fromiter и многомерных массивов в Python
Мне нравится использовать np.fromiter из numpy , потому что это ресурсоемкий способ создания np.array объектов. Однако похоже, что он не поддерживает многомерные массивы, которые тоже весьма полезны. import numpy as np def fun(i): """ A...
4699 просмотров

Преобразование сводной функции в нестандартную оценку NSE в dplyr
Рассмотрим следующий интерактивный пример, который генерирует сводную таблицу: library(dplyr) tg <- ToothGrowth ci_int <- 0.95 tg %>% group_by(supp, dose) %>% summarise(N = n(), mean = mean(len, na.rm = T),...
305 просмотров
schedule 23.11.2021

Следует за функцией Фибоначчи O (n) в Haskell
Как я узнал в SICP, сложность рекурсии дерева растет экспоненциально с увеличением n. Если бы в Haskell я написал вроде, fib n | n <= 1 = n | otherwise = fib (n-1) + fib (n-2) Верно ли, что, поскольку Haskell ленив, он вычисляет...
222 просмотров
schedule 06.10.2021

Понимание ленивых вычислений в R
Я пытаюсь понять, как работает ленивое вычисление в R. Применяется ли это только к оценке аргументов функции? Потому что я понимаю, например f <- function(x = x, y = x*2) { c(x, y) } f(2) [1] 2 4 Но на других языках, например В...
491 просмотров
schedule 14.11.2021