Публикации по теме 'fold'


Уменьшение `reduce`
Используйте самые простые инструменты для более простого и удобного в сопровождении кода. Когда я рецензирую код, мне нравится внимательно изучать любое использование reduce . Напоминаем, что reduce (или fold , или catamorphism , если вы очень любите) позволяет вам взять повторяемый объект, например массив, и создать из него некоторые другие данные. Если вы не видели его раньше, вот документация JavaScript MDN для него. Заманчиво воспользоваться самым мощным инструментом из..

Вопросы по теме 'fold'

Заставить одну функцию работать со списками, ByteStrings и Texts (и, возможно, с другими подобными представлениями)
Я пишу функцию, которая выполняет поиск в последовательности произвольных символов. Я хотел бы сделать его достаточно общим, чтобы он работал со списками, Foldable , а также с ByteString и Text . Обобщить его до Foldable просто. Но как...
633 просмотров
schedule 04.01.2024

Каррирование функций Erlang
Я пытаюсь переделать все свои домашние задачи на Haskell, используя Erlang, и одна вещь, которая меня заводит, это то, как использовать список функций, которые не имеют всех своих параметров. Пример: я пытаюсь использовать этот фолд, но не знаю,...
2720 просмотров
schedule 07.04.2024

Как определить карту с помощью foldr?
Я недавно начал изучать Haskell, и в одном из моих заданий у меня есть упражнение, которое просит определить функцию карты в терминах foldr, и я не могу, хоть убей, понять, как это сделать. Я искал решения по переполнению стека и наткнулся на это:...
958 просмотров
schedule 29.02.2024

Реализация последнего с помощью foldr1
У меня проблема с реализацией последней функции с помощью foldr1. Я предполагаю, что он берет самый правый элемент и обрабатывает его как значение аккумулятора, а затем применяет двоичную функцию к аккумулятору и его соседу, пока не достигнет начала...
192 просмотров
schedule 25.11.2023

Разница между reduce и foldLeft / fold в функциональном программировании (особенно в API Scala и Scala)?
Почему в Scala и таких фреймворках, как Spark и Scalding, есть и reduce , и foldLeft ? Так в чем же разница между reduce и fold ?
28921 просмотров

Соберите несколько значений в разных списках кортежа с помощью fold erlang
Мне нужно повторить последовательность, имеющую элементы в списке, например Sequence = ["1","2","4","5"] . Необходимо подготовить 9 списков, которые можно рассчитать только из Sequence . У меня есть следующая папка. Accumulators = {[], [], [],...
521 просмотров
schedule 17.05.2024

Почему Haskell не принимает мое комбинаторное определение zip?
Это функция zip учебника: zip :: [a] -> [a] -> [(a,a)] zip [] _ = [] zip _ [] = [] zip (x:xs) (y:ys) = (x,y) : zip xs ys Ранее я спрашивал на #haskell, может ли «zip» быть реализован с использованием только «foldr», без рекурсии, без...
482 просмотров
schedule 22.12.2023

Как реализовать «эффективную обобщенную кратность» в F#?
В документе Мартина и др. я прочитал об эффективных обобщенных свертках для вложенных типов данных. В статье говорится о Haskell, и я хочу попробовать его на F#. Пока мне удалось следовать примеру Nest , включая реализацию gfold . type...
195 просмотров
schedule 01.11.2023

foldr - добавление заархивированных элементов двух списков
Мне трудно понять функциональность foldr. Я делаю домашнюю работу, и мы должны построить функцию (не нужна папка), которая сжимает элементы двух списков (например, '(1 2 3) (4 5 6) -> (1 4) (2 5) (3 6). До сих пор это работало довольно хорошо:...
436 просмотров
schedule 10.12.2023

Использование выражения fold для создания тривиального объекта
Я пытаюсь создать объект, используя выражения std::apply и fold. Из того, что я могу сказать, читая документацию в Интернете, сложение запятой должно работать. Вот пример для пояснения. struct my_pair final { float x; float y; };...
552 просмотров
schedule 23.05.2024

Как использовать fold для сложной функции в ocaml
Как следует из названия, я хочу использовать fold. Если я правильно понимаю, раньше он применял функцию к каждому элементу в списке. Это то, что я хочу сделать со своей функцией, но я не знаю, как ее отформатировать. Вот функция, которую я хочу...
320 просмотров
schedule 22.03.2024

Apache Spark сокращает функцию вызова действия чаще, чем ожидалось
Я создал RDD следующим образом: JavaRDD<Integer> rdd = sc.parallelize(Arrays.asList(2, 3, 4)); И этот класс Function2 public class FoldFunction implements Function2<Integer, Integer, Integer> { @Override public...
9 просмотров
schedule 04.04.2024

Стандартная функция ML Foldl/Foldr с оператором умножения?
Как правильно использовать оператор умножения для Standard ML (SMLNJ) для функций foldr и foldl? Использование foldr (op *) 1 [1,2,3]; дает ошибку Standard ML of New Jersey v110.78 [построено: четверг, 31 августа, 03:45:42 2017] stdIn:1.12...
18 просмотров

Превратите список в список списков с помощью fold в haskell
У меня есть этот код: fromList :: Int -> [Int] -> [[Int]] fromList y = takeWhile (not.null) . map (take y) . iterate (drop y) Пример того, что это делает: -> fromList 4 [1..19]...
309 просмотров
schedule 14.03.2024

Схема рекурсии, допускающая зависимости между рекурсивными вызовами (упорядоченный катаморфизм?)
Меня интересует способ более высокого порядка (схема рекурсии) для написания рекурсивного кода, в котором могут быть зависимости между рекурсивными вызовами. В качестве упрощенного примера рассмотрим функцию, которая проходит по дереву целых чисел,...
96 просмотров