Вопросы по теме 'fold'
Объясните, пожалуйста, на самом простом языке без жаргона универсальное свойство fold?
Я работаю через «Real World Haskell», что привело к созданию бесплатного PDF-файла с именем "Учебник по универсальности и выразительности фолда" . Это подчеркивает, что «складка» является «универсальной». Я борюсь с его определением слова...
1802 просмотров
schedule
12.07.2023
Как сделать дополнение в списке с условием?
У меня есть университетский курс по функциональному программированию, где я использую SML. В качестве подготовки к экзамену я работаю над некоторыми из старых наборов экзаменов без решений.
Один из немногих вопросов, с которым у меня действительно...
10574 просмотров
schedule
14.02.2024
Предложения по оптимизации простого Scala foldLeft по нескольким значениям?
Я повторно реализую некоторый код (простой байесовский алгоритм вывода, но это не очень важно) с Java на Scala. Я хотел бы реализовать его максимально производительным способом, сохраняя при этом код чистым и функциональным, максимально избегая...
1637 просмотров
schedule
26.04.2024
Перекрестная проверка в Weka
Из того, что я читал, я всегда думал, что перекрестная проверка выполняется следующим образом:
При k-кратной перекрестной проверке исходная выборка случайным образом разбивается на k подвыборок. Из k подвыборок одна подвыборка сохраняется в...
60289 просмотров
schedule
17.12.2022
Haskell Fold с анонимной функцией
У меня проблема с одной из основ Haskell: Fold + анонимные функции
Я разрабатываю программу bin2dec с помощью foldl . Решение выглядит следующим образом:
bin2dec :: String -> Int
bin2dec = foldl (\x y -> if y=='1' then x*2 + 1 else x*2)...
5138 просмотров
schedule
01.01.2023
Scala: является ли оператор foldl инфиксным?
Глядя на код с foldl сложно понять его синтаксис, например:
def lstToMap(lst:List[(String,Int)], map: Map[String, Int] ):Map[String, Int] = {
(map /: lst) (addToMap)
}
Является ли /: инфиксным оператором? Что означает (map /:...
472 просмотров
schedule
13.03.2024
Проблемы со сгибом в Rust
Предположим, fn scan(int, int) -> int .
Когда используешь
fn count(x: int, y: int) -> int
{
scan(x - 1, y - 1) + scan(x - 1, y) + scan(x - 1, y + 1) + scan(x, y - 1)
+ scan(x, y + 1) + scan(x + 1, y - 1) + scan(x + 1, y) +...
1953 просмотров
schedule
05.07.2022
Почему вы можете перевернуть список с помощью foldl, но не с помощью foldr в Haskell
Почему вы можете перевернуть список с помощью foldl?
reverse' :: [a] -> [a]
reverse' xs = foldl (\acc x-> x : acc) [] xs
Но этот дает мне ошибку компиляции.
reverse' :: [a] -> [a]
reverse' xs = foldr (\acc x-> x : acc) [] xs...
11790 просмотров
schedule
30.06.2023
Преобразование двоичного дерева в список с использованием функции fold в Ocaml
Дано:
type 'a tree = Empty | Node of 'a * 'a tree * 'a tree
Использовать:
let rec tree_fold f e t = match t with
| Empty -> e
| Node (x, l, r) -> f x (tree_fold f e l) (tree_fold f e r);;
для преобразования двоичного...
1823 просмотров
schedule
11.12.2023
Объяснение списков:функция сгиба
Я все больше и больше узнаю о языке Erlang и недавно столкнулся с проблемой. Я читал о функции foldl(Fun, Acc0, List) -> Acc1 . Я использовал учебник Learnyousomeerlang.com, и там был пример (пример касается калькулятора обратной польской записи...
1375 просмотров
schedule
07.07.2022
Haskell, Foldr и foldl
Я уже довольно давно пытаюсь обернуть голову в сторону foldr и foldl, и я решил, что следующий вопрос должен решить эту проблему за меня. Предположим, вы передаете следующий список [1,2,3] следующим четырем функциям:
a = foldl (\xs y -> 10*xs...
740 просмотров
schedule
16.12.2022
Как добавить в пакетный язык Notepad ++ или любым другим способом?
Во-первых, я часами искал свой задний конец, пытаясь найти ответ, но, похоже, я не могу найти ничего отдаленно полезного. Что я пытаюсь сделать, так это найти способ добавить свертывание кода во встроенный пакетный язык. По сути, я люблю...
2021 просмотров
schedule
04.03.2022
поведение foldl в бесконечных списках
Что я понял о foldl и foldr в списках:
Если мы вправо сбрасываем [0,1,2,3] с функцией s и начальным аккумулятором a , мы делаем это:
f 0 (f 1 (f 2 (f 3 a)))
Если мы оставили фолд [0,1,2,3] с функцией s и начальным...
147 просмотров
schedule
18.04.2023
Как работает определение scanr с точки зрения папки?
Упражнение 1 на странице 102 Викибука по Haskell предлагает: «Напишите собственное определение scanr, сначала используя рекурсию, а затем используя foldr». Я написал рекурсивный:
myscan f acc [] = [acc]
myscan f acc (x:xs) = val : rest where...
1045 просмотров
schedule
31.10.2022
Почему foldr работает с бесконечным списком?
Эта функция может работать с бесконечными списками ассоциаций, и легко понять, почему:
findKey :: (Eq k) => k -> [(k,v)] -> Maybe v
findKey key [] = Nothing
findKey key ((k,v):xs) = if key == k
then Just v...
254 просмотров
schedule
26.06.2023
функция рисования со сгибом и добавлением строки?
У меня есть вопрос о рекурсивной функции для рисования изображения
Да, это домашнее задание, но я не знаю, как нарисовать это изображение. Что у меня есть до сих пор:
Функция, которая дает мне список точек (x/y) из кривой ( (list (x1/y2)...
67 просмотров
schedule
14.04.2024
Сворачивание списка и подсчет всех вхождений произвольного количества уникальных и неизвестных сущностей
Я использую библиотеку Control.Foldl для обхода произвольно длинного списка и подсчета всех вхождений произвольного количества уникальных сущностей. Т.е. список может иметь вид
[Just "a", Just "b", Just "aab", Nothing, Just "aab"]
и я мой...
749 просмотров
schedule
12.12.2023
Складной список опций
Учитывая список [Some 1; Some 2; Some 3] , я хотел бы получить результат Some 6 . Учитывая список [Some 1; None] должен дать None .
Но я нахожу это немного сложнее, чем я себе представлял, чтобы добиться этого чистым способом.
Лучшее, что...
777 просмотров
schedule
05.10.2023
Создание списка целых чисел в OCaml без рекурсии
Как я могу использовать одну из функций fold для создания списка целых чисел от 0 до значения n-1? Я не понимаю, как заставить fold_right возвращать список, а не возвращать только накопленное значение.
Это для вспомогательной функции, которую я...
1770 просмотров
schedule
22.05.2024
Не удается сопоставить кортеж внутри foldl
У меня есть следующий код, который должен преобразовать тип столбца excel в соответствующий номер. Например, AA в 27 и AB в 28:
import Data.Char (ord)
import Data.List (foldl1')
columnToNumber :: String -> Int
columnToNumber s = foldl1' (\acc...
163 просмотров
schedule
26.07.2023