Вопросы по теме 'lazy-evaluation'
Как написать ленивую версию orElse с переменным аргументом
Можно ли написать обобщенный метод orElse из Option , который принимает переменное количество аргументов? То есть вместо:
lazy val o1 = { println("foo"); None }
lazy val o2 = { println("bar"); Some("bar") }
lazy val o3 = { println("baz");...
863 просмотров
schedule
11.02.2022
Как создать бесконечно повторяющийся список в 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 просмотров
schedule
01.11.2023
Как мне написать функцию постоянной длины в 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 просмотров
schedule
14.08.2022
Перечисление всех пар, которые можно построить из двух ленивых списков в OCaml
Я пытаюсь перечислить набор всех пар, состоящих из элементов из двух ленивых списков (первый элемент из первого списка, второй элемент из второго списка) в OCaml, используя обычную идею диагонализации. Идея, строго говоря, выглядит примерно так:...
787 просмотров
schedule
12.01.2024
Ленивое вычисление и проблемы с правильностью констант
Я создал класс камеры openGL, который использует ленивую оценку для предоставления окончательной проекции или матриц проекции модель-вид-проекция через функции получения. Пользователь предоставляет различные параметры камеры на протяжении всего...
704 просмотров
schedule
10.08.2022
Отключить ленивую загрузку в спящем режиме
Как отключить ленивую загрузку в Hibernate? Я использую аннотации сохранения, а не файл hbm xml.
Я извлекаю один объект по идентификатору и хочу, чтобы все свойства были загружены. Сеанс закрывается до того, как я использую объект.
Спасибо!
23821 просмотров
schedule
20.03.2022
Переполнение стека 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 просмотров
schedule
06.08.2023
Странная ленивая загрузка табличных переменных SQL Server?
Я столкнулся с вводящей в заблуждение ошибкой в SQL Server 2008, и мне интересно, может ли кто-нибудь объяснить, что со мной происходит?
У меня есть хранимая процедура примерно так:
declare @cross_reference table (
context...
612 просмотров
schedule
04.08.2023
Почему карта не требует строгости, а 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 просмотров
schedule
22.10.2022
Когда 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 просмотров
schedule
15.12.2022
Определение степени ленивой оценки
Дано
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 просмотров
schedule
04.01.2023
Помимо лени, есть ли веская причина не использовать ‹? = Для вывода переменных PHP?
Возможный дубликат: В чем разница между открытыми тегами PHP« ‹? =» и «‹? php »/« ‹?»?
Вместо того, чтобы вводить:
<?php echo $foo; ?>
Я видел это написанным
<?= $foo; ?>
Но я часто задавался вопросом,...
151 просмотров
schedule
16.04.2024