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

Как написать ленивую версию orElse с переменным аргументом
Можно ли написать обобщенный метод orElse из Option , который принимает переменное количество аргументов? То есть вместо: lazy val o1 = { println("foo"); None } lazy val o2 = { println("bar"); Some("bar") } lazy val o3 = { println("baz");...
863 просмотров

Как создать бесконечно повторяющийся список в Haskell?
Я парень, работающий на С#, и пытаюсь выучить Haskell из веб-трансляций Эрика Мейера на канале 9. Я наткнулся на интересную головоломку, в которой нужно было пропустить все n элементов списка с помощью zip и mod. every :: Int -> [a] -> [a]...
9673 просмотров
schedule 28.09.2022

Составление монадных действий со складками
Возьмем функцию типа (Monad m) => a -> m a . Например: ghci> let f x = Just (x+1) Я хотел бы иметь возможность применять его любое количество раз. Первое, что я попробовал, это ghci> let times n f = foldr (>=>) return...
589 просмотров
schedule 28.06.2022

Повторяющиеся параметры по имени
Как передать повторяющиеся параметры по имени в Scala? Следующий код не работает: scala> def foo(s: (=> String)*) = { <console>:1: error: no by-name parameter type allowed here def foo(s: (=> String)*) = {...
1963 просмотров

Как мне написать функцию постоянной длины в Haskell?
Каноническая реализация length :: [a] -> Int : length [] = 0 length (x:xs) = 1 + length xs что очень красиво, но страдает от переполнения стека, поскольку использует линейное пространство. Хвостовая рекурсивная версия: length xs =...
1034 просмотров
schedule 05.05.2024

Что такое звонить по имени?
Я работаю над домашним заданием, где нас просят реализовать стратегию оценки под названием «позвонить по имени» на определенном языке, который мы разработали (используя Scheme). Нам дали пример на Scala , но я не понимаю, как "вызов по имя»...
26789 просмотров
schedule 20.11.2023

Если у меня есть выражение, которое можно вычислить частично, стоит ли избегать хвостовой рекурсии?
Рассмотрим haskell-выражение, подобное следующему: (Простой пример, не говорите мне, каков очевидный способ! ;) toBits :: Integral a => a -> [Bool] toBits 0 = [] toBits n = x : toBits m where (m,y) = n `divMod` 2 x = y /= 0...
268 просмотров

Перечисление всех пар, которые можно построить из двух ленивых списков в OCaml
Я пытаюсь перечислить набор всех пар, состоящих из элементов из двух ленивых списков (первый элемент из первого списка, второй элемент из второго списка) в OCaml, используя обычную идею диагонализации. Идея, строго говоря, выглядит примерно так:...
787 просмотров
schedule 12.01.2024

Ленивое вычисление и проблемы с правильностью констант
Я создал класс камеры openGL, который использует ленивую оценку для предоставления окончательной проекции или матриц проекции модель-вид-проекция через функции получения. Пользователь предоставляет различные параметры камеры на протяжении всего...
704 просмотров
schedule 10.08.2022

Отключить ленивую загрузку в спящем режиме
Как отключить ленивую загрузку в Hibernate? Я использую аннотации сохранения, а не файл hbm xml. Я извлекаю один объект по идентификатору и хочу, чтобы все свойства были загружены. Сеанс закрывается до того, как я использую объект. Спасибо!
23821 просмотров

Переполнение стека Clojure с использованием повторяющейся, ленивой последовательности?
Я читал вопросы других людей о проблемах с переполнением стека в Clojure, и проблема, как правило, заключается в том, что где-то создается ленивая последовательность. Кажется, здесь проблема, но хоть убей, я не могу понять, где. Вот код, а после...
1332 просмотров
schedule 24.06.2022

Значение последовательности Фибоначчи в haskell
как получить сумму последовательности фибоначчи, используя этот код: fibs= 0 : 1 : zipWith (+) fibs (tail fibs) редактировать: взять 5 фибов дает список [0,1,1,2,3], поэтому значение 5-го элемента равно 3, чтобы извлечь его, мы должны ввести:...
294 просмотров
schedule 18.07.2022

Как работает seq force?
Фон Этот вопрос возникает из-за задачи, поставленной Брентом Йорги в OPLSS: написать функцию f :: (Int -> Int) -> Bool , которая отличает f undefined от f (\x -> undefined) . Во всех наших ответах использовалось либо seq , либо...
3067 просмотров

Странная ленивая загрузка табличных переменных SQL Server?
Я столкнулся с вводящей в заблуждение ошибкой в ​​SQL Server 2008, и мне интересно, может ли кто-нибудь объяснить, что со мной происходит? У меня есть хранимая процедура примерно так: declare @cross_reference table ( context...
612 просмотров

Почему карта не требует строгости, а zipWith делает?
Есть две строгие версии функции zipWith: 1) Действительно строго, элементы списков l1 и l2 оцениваются, поэтому их преобразователи не занимают все пространство стека (код Дона Стюарта) zipWith' f l1 l2 = [ f e1 e2 | (e1, e2) <- zipWith k l1...
836 просмотров
schedule 12.03.2022

Управление поиском в Haskell
Предположим, вы пишете программу, которая ищет в экспоненциально большом или бесконечном пространстве: геймплей, доказательство теорем, оптимизация и т. д., где вы не можете искать во всем пространстве, и качество результатов сильно зависит от выбора...
291 просмотров
schedule 17.04.2024

Можете ли вы выполнить отложенный набор (: = в Mathematica) в Matlab?
Итак, я недавно перешел с Mathematica на Matlab, и хотя в Matlab есть большинство полезных функций Mathematica, я не могу понять, как выполнить эквивалент операции Mathematica с отложенным набором ':=', которая присваивает переменной значение в...
755 просмотров

Когда scala's for-computing lazy ленив?
В Python я могу сделать что-то вроде этого: lazy = ((i,j) for i in range(0,10000) for j in range(0,10000)) sum((1 for i in lazy)) Это займет некоторое время, но использование памяти будет постоянным. Такая же конструкция в scala:...
4639 просмотров

Определение степени ленивой оценки
Дано data BTree a = End | Node a (BTree a) (BTree a) deriving(Show,Eq,Ord) data Msg = Msg { from :: String , to :: String , when :: Int , message :: String } instance Ord Msg where...
116 просмотров

Помимо лени, есть ли веская причина не использовать ‹? = Для вывода переменных PHP?
Возможный дубликат: В чем разница между открытыми тегами PHP« ‹? =» и «‹? php »/« ‹?»? Вместо того, чтобы вводить: <?php echo $foo; ?> Я видел это написанным <?= $foo; ?> Но я часто задавался вопросом,...
151 просмотров
schedule 16.04.2024