Вопросы по теме 'lazy-sequences'
Как в Clojure реализованы ленивые последовательности?
Мне нравится Clojure. В языке меня беспокоит то, что я не знаю, как реализуются ленивые последовательности и как они работают.
Я знаю, что ленивые последовательности оценивают только те элементы, которые запрашиваются. Как оно работает?
Что...
3795 просмотров
schedule
20.07.2023
SML Ленивая сортировка списка int с использованием потоков
Вопрос
1 Потоки и ленивая оценка (40 баллов)
Мы знаем, что сортировка сравнением требует как минимум O(n log n) сравнений, где were сортирует n элементов. Допустим, нам нужны только первые f(n) элементов из отсортированного списка для...
1589 просмотров
schedule
28.05.2022
clojure остальные и связанные с ними
Я следил за The Joy of Clojure и меня озадачили эти 2 утверждения
(def very-lazy (-> (iterate #(do (print \.) (inc %)) 1) rest rest rest))
(def less-lazy (-> (iterate #(do (print \.) (inc %)) 1) next next next))
соответственно выход...
421 просмотров
schedule
18.10.2022
В чем разница между функцией Clojure (nth [coll index]) и композицией (last (take index coll))
Я пытаюсь работать с книгой Стюарта Хэллоуэя Programming Clojure. Весь этот функциональный материал очень нов для меня.
я понимаю как
(defn fibo[]
(map first (iterate (fn [[a b]] [b (+ a b)]) [0 1])))
лениво генерирует...
632 просмотров
schedule
14.01.2023
как сделать Seq.takeWhile + один элемент в F#
Я хотел бы написать функцию, которая фильтрует последовательность с помощью предиката, но результат также должен ВКЛЮЧАТЬ первый элемент, для которого предикат возвращает false.
Логика была бы примерно такой, если бы в F# было ключевое слово break...
2598 просмотров
schedule
01.06.2023
ленивая версия mapM
Предположим, я получаю большой список элементов при работе с IO:
as <- getLargeList
Теперь я пытаюсь применить fn :: a -> IO b к as :
as <- getLargeList
bs <- mapM fn as
mapM имеет тип mapM :: Monad m => (a ->...
460 просмотров
schedule
31.01.2023
Терминология на примере кодовых данных в Clojure
Представьте себе следующую функцию, которая выдает бесконечную ленивую последовательность чисел Фибоначчи в Clojure:
(def fib-seq
(concat
[0 1]
((fn rfib [a b]
(lazy-cons (+ a b) (rfib b (+ a b)))) 0 1)))
user> (take 20...
827 просмотров
schedule
25.07.2023
почему эта функция цикла такая медленная по сравнению с картой?
Я просмотрел исходный код карт, который в основном продолжает создавать ленивые последовательности. Я бы подумал, что перебор коллекции и добавление к переходному вектору будет быстрее, но, очевидно, это не так. Что я не понимаю в поведении...
174 просмотров
schedule
23.02.2023
Mapcat преодолевает лень
У меня есть функция, которая создает ленивые последовательности, называемые a-функцией.
Если я запускаю код:
(map a-function a-sequence-of-values)
он возвращает ленивую последовательность, как и ожидалось.
Но когда я запускаю код:...
1503 просмотров
schedule
08.01.2023
ArgumentError — пытался вызвать ленивый take_while без блока
Представьте, что есть M больших текстовых файлов по N строк в каждом, пронумерованных от 1 до M*N. Моя цель - получить либо все строки после индекса X, либо только последние 10 из них, если X не указан. Я мог бы сделать внешний if , чтобы разделить...
156 просмотров
schedule
11.05.2023
Бесконечная скорость генератора в рубине - метод против перечислителя против ленивого
Предупреждение . Это не имеет практического значения. Я просто хочу знать, что происходит.
Я наткнулся на эту строку несколько раз в Интернете:
return to_enum __method__ unless block_given?
Я хотел проверить это и сделал с ним метод...
369 просмотров
schedule
03.10.2022
Clojure lazy-seq оптимизация производительности
Я новичок в Clojure, и у меня есть код, который я пытаюсь оптимизировать. Я хочу вычислить количество совпадений. Основная функция - это compute-space , а вывод - это вложенная карта типа
{"w1" {"w11" 10, "w12" 31, ...}
"w2" {"w21" 14, "w22"...
616 просмотров
schedule
30.07.2022
Почему эта ленивая последовательность не печатается?
Я не могу понять, почему эта ленивая последовательность не печатается. Я просмотрел другие сообщения здесь (например, это ), и ни одно из них не похоже на то, что я ищу. Вот фрагмент кода...
(defn exp [x n]
(reduce * (repeat n x))
)
(defn...
166 просмотров
schedule
15.06.2022
Как lazy-seq накапливает результат?
Вот реализация функции partition в clojurescript. Другие методы удалены для простоты.
Мне трудно понять, как lazy-seq накапливает результат. В конце есть when , который, если я правильно понимаю, вернет nil , если тест неверен. Куда...
135 просмотров
schedule
08.06.2023
Как мысленно смоделировать этот генератор Фибоначчи clojure?
Наткнулся на эту интересную реализацию генератора Фибоначчи в clojure. Немного сложно понять часть ссылки на себя. Любая помощь в ментальном моделировании была бы очень полезна.
(def fib-seq
(lazy-cat [0 1] (map + (rest fib-seq) fib-seq)))
352 просмотров
schedule
19.06.2022
Обработка SQL-запросов как ленивых потоков в Racket
Язык: Racket (с кодом/указателем SQL-запроса) Библиотеки: db, racket/stream, racket/sequence
Цель: лениво обрабатывать значение sql-запросов, используя потоки в Racket.
Вопрос 1: как вы манипулируете объектами потока запросов SQL в Racket? (Я...
59 просмотров
schedule
13.06.2022
Как сгенерировать ленивое деление?
Я хочу создать последовательность
1, 1/2, 1/3, 1/4 ... *
Используя подход функционального программирования в raku, в моей голове это должно выглядеть так:
(1,{1/$_} ...*)[0..5 ]
но на выходе получается: 1,1,1,1,1 Идея проста, но кажется...
300 просмотров
schedule
06.05.2022
Clojure, java.io.Writer f и ленивый seq
Не могу использовать lazy-seq для записи данных в файл, независимо от того, что я использую, ошибка закрытия потока возникает каждый раз.
(ns logger.core
(:gen-class)
(:require [clojure.java.io :as io])
(:import java.util.Date...
79 просмотров
schedule
05.03.2023