Описание тега foldleft

A common algorithm in functional languages that applies an operation to each member of a sequence, from left to right.
4 ответа

Как написать эффективный фильтр groupBy-size в Scala, можно примерно

Учитывая List[Int] в Скала, я хочу получить Set[Int] из всех Intс, которые появляются по крайней мере thresh раз. Я могу сделать это с помощью groupBy или же foldLeft, затем filter, Например: val thresh = 3 val myList = List(1,2,3,2,1,4,3,2,1) myLis…
12 авг '15 в 19:02
1 ответ

Scala Fold оставил нахождение предпоследнего элемента

Можете ли вы объяснить мне, почему первое определение неверно по сравнению со следующим? Зачем писать ((r._2,c))._1 принесет мне предпоследний элемент? Пожалуйста, дайте мне проследить, как элементы вставляются в (r,c) или их значение. Вот код: scal…
13 янв '16 в 02:39
1 ответ

Написать обратное в Scala, используя Foldleft

Вот реализация: def reverse[A](l: List[A]): List[A] = foldLeft(l, List[A]())((acc,h) => Cons(h,acc)) Я не понимаю, что понимает компилятор с (acc,h); Первоначально, функция f соответствует (ListA,l), которые являются 2 списками, так работает ли C…
26 ноя '14 в 15:20
2 ответа

Вяз: Как войти в фолдл

У меня есть следующий код: findPerson name peeps = List.foldl (\a b -> case b of Just _ -> b Nothing -> if a.name == name then Just a else Nothing ) Nothing peeps Я хотел бы записать значения a а также b внутри foldl, Я пробовал: findPerson…
10 апр '17 в 09:42
1 ответ

Список в scala не обновляется

Я новичок в Scala Collections, и в настоящее время я хочу разделить данный список строк в кортеж из двух списков (List[String], List[String]), который содержит список строк палиндрома и остальную часть входных строк. Например, если ввод List("raceca…
29 июн '17 в 05:09
3 ответа

Выражение типа B => List[B] не соответствует ожидаемому типу List[Int] при обращении списка в Scala

Работаем над функцией, которая переворачивает список в Scala с помощью функции foldLeft: def reverseWithFold(ls: List[Int]): List[Int] = ls.foldLeft(List[Int]())((c, _) => _:::c) он получил ошибки компиляции: Expression of type List[B_] => Lis…
16 янв '19 в 07:50
1 ответ

Композиция функций Haskell с использованием foldl

Я определил следующую функцию в haskell: step :: [Int] -> [Char] -> [Int] step stack str | str == "*" = remaining ++ [x*y] | str == "+" = remaining ++ [x+y] | str == "-" = remaining ++ [x-y] | str == "/" = remaining ++ [x `div` y] | otherwise …
03 янв '19 в 07:35
1 ответ

foldLeft на карте - почему это работает?

Это из курса Coursera, до сих пор никто не мог мне помочь. Следующие работы взяты из лекции. object polynomials { class Poly(terms0: Map[Int, Double]) { def this(bindings: (Int, Double)*) = this(bindings.toMap) val terms = terms0 withDefaultValue 0.…
24 июл '16 в 06:26
0 ответов

Суммирование списка с использованием Foldl

Я новичок в Haskell и пытаюсь реализовать синусоидальное приближение, используя ряды Маклаурина, используя foldl на Haskell. Я уже сгенерировал список, и теперь я пытаюсь получить суммирование с помощью Fold. Это мой код Я знаю, что делаю что-то не …
28 апр '18 в 05:17
1 ответ

Haskell: foldl Функция применяется как инфиксная функция?

Является ли функция, которую я даю foldl применяется инфиксным способом? пример foldl (-) 0 [1,2,3] = 0-1-2-3 = -6 так в целом: foldl f x [a,b,c] применяется как: (((x `f` a) `f` b) `f` c) Я знаю, что это рекурсивно, но могу ли я думать об этом таки…
01 июл '18 в 06:14
1 ответ

Найти нажатия клавиш для экранной клавиатуры scala

Я пытаюсь решить вопрос недавнего интервью, используя Scala. У вас есть экранная клавиатура, которая представляет собой сетку из 6 строк по 5 столбцов в каждой. С алфавитами от A до Z и пустое пространство располагаются в строке сетки в первую очере…
11 май '17 в 15:40
2 ответа

Scala с использованием foldLeft для вставки терминатора между списком строк

Я написал свое собственное рекурсивное определение foldLeft и я хотел бы использовать его с этой функцией joinTerminateLeft который берет список строк и терминатор и создает новую строку с этими строками, разделенными терминатором. Например List("a"…
23 янв '17 в 20:06
2 ответа

Карта Scala с зависимыми переменными

В Scala у меня есть список функций, которые возвращают значение. Порядок, в котором выполняются функции, важен, так как аргумент функции n это выход функции n-1, Это подсказки для использования foldLeft, что-то вроде: val base: A val funcs: Seq[Func…
07 мар '17 в 12:06
2 ответа

Функция Scala FoldLeft

У меня есть ниже примерные данные: день,JD, месяц, год,PRCP(в),SNOW(в),TAVE (F),TMAX (F),TMIN (F) 1,335,12,1895,0,0,12,26,2 -2,336,12,1895,0,0,-3,11,-16 .,, Теперь мне нужно рассчитать самый жаркий день с максимальным значением TMAX, теперь я рассчи…
19 май '18 в 17:32
1 ответ

Scala - сравнение производительности агрегата против foldLeft

Насколько я понимаю, /: то же самое, что и foldLeft, а также то, что агрегат является более быстрой версией foldLeft, если список преобразуется в параллельную коллекцию с использованием 'par'. Если я прав, почему следующий код показывает, что:/ и fo…
15 ноя '16 в 07:34
1 ответ

Как сделать неубывающий список списков из одного списка? Без использования рекурсии, используя fold_left/fold_right. OCaml

Это моя идея вопроса, но я не могу правильно набрать fold_left метод. Пример: nonDecreasing[1;4;3;2;5;6] == [[1;4];[3];[2;5;6]] let nonDecreasing list = match list with | [] -> help(a, b, c) = b | h::[] -> 2 (*I don't know, "2" is only to comp…
21 ноя '18 в 18:07
2 ответа

Определение сгибания в терминах сгибания

myFoldl :: (a -> b -> a) -> a -> [b] -> a myFoldl f z xs = foldr step id xs z where step x g a = g (f a x) В настоящее время я читаю книгу о Haskell. И в нем он написал свою собственную версию функции foldl, но в терминах foldr. Я не …
30 окт '18 в 05:25
1 ответ

Манипулирование SortedMap с использованием foldleft

У меня есть код, который преобразует следующие типы данных: от: SortedMap[Long, SortedMap[String, Double]] до: SortedMap[String, Array[Double]] Может кто-нибудь объяснить, как этот код выполняет вышеуказанные манипуляции? val convertedDataWindow = d…
04 дек '14 в 08:58
3 ответа

Выбор между использованием foldleft() или Seq.newBuilder в Scala

У меня есть некоторый код, где мне нужно добавить элементы в последовательность, перебирая другую. Какой способ является "предпочтительным" или, вернее, лучшим способом сделать это в Scala и почему? Способ 1: val builder = Seq.newBuilder[String] for…
19 май '14 в 08:13
3 ответа

Как реализовать эту функцию foldl0 без вспомогательного метода?

У меня есть следующий код: function foldr0(list, func) { if (list.length == 0) { return 0; } else { return func(list[0], foldr0(list.slice(1), func)); } } function foldl0(list, func) { if (list.length == 0) { return 0; } else { return ? } } Я знаю, …