Я только учусь использовать ленивые последовательности в Clojure, и я не уверен, что я делаю неправильно в следующем коде: (defn sum [seqn] (reduce + seqn)) (defn fib ([] (concat [0 1] (fib 0 1))) ([ab]...
У меня есть немного вычислений, которые довольно дороги (запуск базы данных), и я хочу создать базу данных только в том случае, если я действительно собираюсь ее использовать. Я ищу ссылочную переменную (или просто...
Меня интересует производительность бесконечного списка во время выполнения, например
приведенный ниже: fibs = 1 : 1 : zipWith (+) fibs (хвост fibs) Это создаст бесконечный список последовательности Фибоначчи. Мой ...
Можно ли определить в Haskell функцию, подобную следующей? или Истина Истина = Истина
или True undefined = True
или Верно Ложно = Верно
или не определено Истина = Истина
или...
Допустим, у нас есть следующее: l = map f (map g [1..100]) И мы хотим сделать: head l Итак, мы получаем: head (map f (map g [1..100])) Теперь нам нужно получить первый элемент this. map определена ...
Ленивый потокобезопасный экземпляр синглтона довольно непросто понять для каждого кодера, поэтому я хотел создать класс в рамках нашего предприятия, которые будут делать эту работу. Что вы думаете об этом? ...
Мой контекст — биоинформатика, в частности секвенирование следующего поколения, но проблема общая; поэтому я буду использовать файл журнала в качестве примера. Файл очень большой (гигабайты большие, сжатые, поэтому он...
Есть ли разница между потоками (ленивыми списками )и монадами? С концептуальной и математической точек зрения, а не с технической реализации. Или же существуют biunique, от одного -до -один...
Я выполнял некоторые вычислительные работы в F#. Такие функции, как Array.Parallel.map, использующие.Net Task Parallel Library, экспоненциально ускорили мой код, затрачивая на самом деле минимальное...
(Для следующего упростите Show и Read to class Show a where show ::a -> String class Read a where read ::String -> a И предположим, что чтение никогда не завершается ошибкой. )Хорошо-известно, что можно...
Я пытался понять, как неявные параметры работают в Scala. Насколько я могу судить, разрешение неявных параметров происходит примерно так:Явная передача объекта методу....
Мне очень нравится строка for (< -Source fromFile inputPath getLines ){ doSomething line} конструкция для перебора файла в scala, и мне интересно, есть ли способ использовать подобную...
В файле Parsers.scala (Scala 2.9.1) из библиотеки комбинаторов парсеров я, кажется, наткнулся на менее известную функцию Scala, называемую «ленивыми аргументами». Вот пример: def ~ [U](q: => ...
Атрибут lazy=true включает ленивую загрузку родительской и дочерней коллекций, а также атрибут fetch="select". Есть ли разница между lazy="true" и fetch="select" в спящем режиме?...
В документе Lazy.lazy_from_val указано, что эта функция предназначена для особых случаев: val lazy_from_val : 'a -> 'at lazy_from_val v возвращает уже принудительно приостановку v Это для особых...
В этом FAQ говорится, что Оператор seq seq :: a -> b -> bx seq y будет оценивать x, достаточно проверить, что он не является нижним, затем отбросить результат и оценить y. Может показаться, что это не так...
Правильно ли я понимаю, что def оценивается каждый раз, когда к нему обращаются, ленивый val оценивается, когда к нему обращаются, val оценивается, когда он попадает в область выполнения?
Как следует рассуждать об оценке функции в примерах вроде следующего в Haskell: let f x = ... x = ...
in map (g (fx)) xs В GHC иногда (fx) оценивается только один раз, а иногда ...
Каноническим примером полезности рекурсивных алгебраических типов данных и ленивого вычисления является игровой алгоритм, например как показано в знаменитой статье Джона Хьюза WhyFP (Comp. J., Vol. 32, No. 2, ...
Если да, то является ли это частью стандарта или специфической оптимизацией ghc, от которой мы можем зависеть? Или просто оптимизация, от которой мы не обязательно можем зависеть. P.S.:
Когда я попробовал тестовый образец, он показался ...
Все мы знаем (или должны знать), что Haskell по умолчанию является ленивым. Ничего не оценивается до тех пор, пока его не нужно оценивать. Итак, когда нужно что-то оценивать? Есть моменты, в которых Haskell должен быть строгим. Я ...
Ближайший к case class Foo (lazy next: Foo) что мне удалось придумать, это class Foo (_next: => Foo) {lazy val next = _next
}
object Foo {def apply (next: => Foo) = ...
В Clojure если я мемоизирую функцию, называю ее f и вызываю ее на аргументе a. Если a - большое ленивое значение, возвращает ли memoize значение, основанное на совпадении с thunk, а не на принудительной оценке ...
Я смотрел интервью с Джоном Хьюзом, и его спросили, скучает ли он по лени, когда он перешел с Haskell на Erlang, в ответ сказал «да» и использовал инструменты для его «эмуляции».
Мой вопрос: ...
Может ли кто-нибудь объяснить или дать некоторые ресурсы о том, как композиция функций работает по отношению к лени? Например, как работает filter (/ = 'W'). map toUpper $ "justaword" по сравнению с Haskell ...
Только что намочил ноги в алгоритме сортировки на Haskell. Я реализовал insertion-sort и merge-sort insert_sort :: (Ord a, Show a) => [a] -> [a].
insert_sort keys = foldr f [] keys ...
Мне любопытно, как я должен улучшить производительность подпрограммы Haskell, которая находит лексикографически минимальное циклическое вращение строки. импортировать Data.List
поменять местами при n = f. splitAt n where ...