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

как провести юнит-тест на лень
У меня есть функция, которая должна принимать ленивую последовательность и возвращать нереализованную ленивую последовательность. Теперь я хочу написать модульный тест (кстати, test-is), чтобы убедиться, что результатом является нереализованная...
1659 просмотров
schedule 08.11.2023

Clojure: ленивая магия
Почти 2 идентичные программы для генерации бесконечных ленивых последовательностей рандомов. Первый не вылетает. Второй сбой с исключением OutOfMemoryError. Почему? ;Return infinite lazy sequence of random numbers (defn inf-rand[] (lazy-seq...
999 просмотров
schedule 22.04.2022

Как мне написать предикат, который проверяет, существует ли значение в бесконечной последовательности?
Сегодня у меня возникла идея функции высшего порядка, которую я не знаю, как писать. У меня есть несколько разреженных ленивых бесконечных последовательностей, и я хочу создать абстракцию, которая позволяет мне проверять, входит ли данное число в...
866 просмотров
schedule 02.05.2022

Как создать анонимную рекурсивную функцию, генерирующую ленивую последовательность, в Clojure?
Редактировать : я нашел частичный ответ на свой вопрос в процессе написания этого, но я думаю, что его можно легко улучшить, поэтому я все равно опубликую его. Может быть, есть лучшее решение? Я ищу простой способ определить рекурсивные функции в...
1401 просмотров

Нелинейное замедление, создающее ленивую последовательность в Clojure
Я реализовал функцию, которая возвращает n-граммы заданной коллекции ввода как ленивую последовательность. (defn gen-ngrams [n coll] (if (>= (count coll) n) (lazy-seq (cons (take n coll) (gen-ngrams n (rest coll)))))) Когда я...
243 просмотров
schedule 02.07.2023

остановить и разделить сгенерированную последовательность на повторах - clojure
Я пытаюсь создать последовательность, которая будет генерировать значения только до тех пор, пока не найдет следующие условия и не вернет перечисленные результаты: головка корпуса = 0 - вернуть {:origin [все сгенерировано, кроме 0] :pattern 0}...
333 просмотров
schedule 06.05.2022

Время реализации ленивой последовательности
(defn square [x] (do (println (str "Processing: " x)) (* x x))) (println (map square '(1 2 3 4 5))) Почему выход (Processing: 1 Processing: 2 1 Processing: 3 4 Processing: 4 9 Processing: 5 16 25) нет (Processing: 1...
220 просмотров
schedule 20.05.2022

Могу ли я пошагово обработать нереализованный lazy-seq
У меня есть lazy-seq, где каждый элемент требует времени для вычисления: (defn gen-lazy-seq [size] (for [i (range size)] (do (Thread/sleep 1000) (rand-int 10)))) Можно ли поэтапно оценить эту последовательность и распечатать...
429 просмотров
schedule 29.04.2022

Immutable.js — ленивая последовательность
Недавно я услышал о библиотеке Facebook Immutable.js ( https://github.com/facebook/immutable-js ). Меня смущает следующее из их документации: var oddSquares = Immutable.Sequence(1,2,3,4,5,6,7,8) .filter(x => x % 2).map(x => x * x);...
2447 просмотров

Ленивые фибоначчи в Ruby
Я могу написать ленивый фибоначчи в Clojure следующим образом: (def fib (lazy-cat [1 1] (map +' fib (rest fib)))) и я пытаюсь (безуспешно) написать это на Ruby следующим образом: fib = Enumerator.new do |yielder| yielder << 1...
570 просмотров
schedule 18.07.2022

идиоматические ленивые атомы в clojure
Я немного играю с атомами в clojure. У меня atom указывает на lazy-seq . В другом фрагменте кода я хочу обновить значение атома до результата выполнения next в последовательности, но, учитывая, что и swap! , и reset! возвращают выполнение...
456 просмотров
schedule 10.11.2022

Написание хорошего Scala без сопрограмм (включая пример Python с использованием yield)
В настоящее время я изучаю Scala и ищу элегантное решение проблемы, которая легко решается с помощью сопрограмм. Поскольку сопрограммы не включены по умолчанию в Scala, я предполагаю, что они, по крайней мере, не являются общепринятой передовой...
150 просмотров
schedule 16.04.2023

объединение двух ленивых списков, конфликт типов
Почему моя функция merge жалуется на свой тип? Разве мой x не type 'a seq ? type 'a seq = Stop | Cons of 'a * (unit -> 'a seq) let rec linear start step= (*builds a seq starting with 'start'*) Cons (start, fun () -> linear...
225 просмотров
schedule 04.08.2022

Clojure: извлечение карт с определенными значениями из Lazy Sequence
У меня есть ленивая последовательность Clojure: { {:keyOne 123, :keyTwo "TestVal"} {:keyOne 456, :keyTwo "Value2"} {:keyOne 789, :keyTwo "TestVal"} } Я хочу получить карты, которые имеют определенное значение для данного ключа,...
282 просмотров
schedule 21.07.2022

почему clojure не работает при компиляции в .jar
в соответствии с этим примером он отлично работает в REPL, но когда он скомпилирован в .jar (с использованием lein uberjar) и выполнен с помощью java -jar test.jar, вывод цикла for не отображается. Вопрос - что не так? (ns fortest.core...
47 просмотров
schedule 10.07.2023

Как преобразовать состояние возврата Prolog для выполнения той же задачи, что и lazy seq из Clojure?
Вот алгоритм быстрой сортировки чисел, написанных на Clojure. По сути, это алгоритм быстрой сортировки из "The Joy of Clojure" , 2-е издание, стр. 133. Я немного изменил его для (надеюсь) лучшей читаемости, потому что оригинал казался слишком...
231 просмотров

Кэшируют ли Kotlin Sequences промежуточные результаты?
При работе с последовательностями Kotlin с функциональными API, такими как map , flatMap , + и т. д., вычисленные промежуточные результаты кэшируются, поэтому при второй оценке нет повторного вычисления? В противном случае замена List s на...
128 просмотров

Как вы можете передать итерируемый объект нескольким потребителям в постоянном пространстве?
Как вы можете передать итерируемый объект нескольким потребителям в постоянном пространстве? TLDR Напишите реализацию, которая проходит следующий тест в CONSTANT SPACE, рассматривая min , max и sum как черные ящики. def...
122 просмотров
schedule 04.04.2024

Попытка разбить строку в Clojure сталкивается с проблемой ленивого seq
Я работаю над проблемой чтения файла с такими строками, как: A abcdefg B bcdefgh Но я продолжаю получать ошибки о Lazy Sequence, несовместимой с Java Charseq .. Я пытался: (def notlazy (doall lyne2)) Потом подумал, что проверил:...
132 просмотров
schedule 23.10.2022

Отбрасывает ли Haskell промежуточные результаты во время ленивой оценки?
Если я определяю последовательность Фибоначчи рекурсивно: fibo_lazy_list = 0 : 1 : zipWith (+) fibo_lazy_list (tail fibo_lazy_list) Затем запросите первый элемент выше заданного значения, скажем: print $ find (>100) fibo_lazy_list Я...
86 просмотров
schedule 27.05.2023