Насколько я понимаю, разница между List.fold и List.foldBack заключается в том, что foldBack перебирает свой список в обратном порядке. Обе функции накапливают результат из элементов в списке. Я ...
Haskell newb здесь Я работаю над этой проблемой в haskell: (**) Устранить последовательные дубликаты элементов списка. Если список содержит повторяющиеся элементы, их следует заменить одной копией ...
ПРИМЕЧАНИЕ. Я использую Scala 2.8 - может ли это быть проблемой? Почему я не могу использовать функцию сворачивания так же, как foldLeft или foldRight? В скаладоке Set сказано, что: Результат сворачивания может только быть ...
Интересно, почему у scala.Option нет метода fold как это определено: fold (ifSome: A => B, ifNone: => B) эквивалент map (ifSome) .getOrElse (ifNone) Нет ничего лучше, чем использование map + ...
Функция высшего порядка, обычно известная как сокращение, имеет множество синонимов в разных языках. Внезапно я могу придумать: foldr, foldl (также известный как правая складка и левая складка) (Хаскелл)
inject ...
Из того, что я читал, я всегда думал, что перекрестная проверка выполняется следующим образом: при k-кратной перекрестной проверке исходная выборка случайным образом разбивается на k подвыборок. Из k подвыборок...
Как я могу проверить, является ли BST допустимым, учитывая его определение и используя обобщенную версию свертывания для BST? данные (Ord a, Показать a, Читать a) => BST a = Void | Узел {val :: a, левый, правый :: ...
Я начал использовать Scalaz 7 Validation and/or disjunction для обработки списка возможных неудачных операций и управления их результатом. Есть два хорошо задокументированных случая для такого рода вариантов использования :1/...
Каков наиболее идиоматический способ добиться чего-то вроде следующего в Haskell :foldl (+ )0 [1,2,3,4,5] --> 15 Или его эквивалент в Ruby :[1,2,3,4,5].inject (0 ){|m,x| м + х} #> 15...
Согласно Learn you some Erlang : практически любая функция, которую вы можете придумать, которая сокращает списки до 1 элемента, может быть выражена как свертка. [...] Это означает, что fold универсален в том смысле, что вы ...
Мне часто нужно видеть информацию до (на самом деле) определенного уровня детализации. Есть ли способ развернуть блоки до определенного уровня, а остальные скрыть? Например: * имя
Джо
** номер дома
111-111-...
Когда я создаю список с помощью foldLeft, меня часто раздражает необходимость явно вводить вводимый параметр, и я хочу вместо этого просто использовать `Nil' — вот надуманный пример: scala> List(1,2,3).. ..
Я повторно реализую некоторый код (простой алгоритм байесовского вывода, но это не очень важно) из От Java до Scala. Я хотел бы реализовать его максимально производительным способом, сохраняя при этом ...
Каким образом строго над монадой? Data.Foldable имеет строгую свертку и монадическую свертку, но не строгую свертку? Строгость как-то определяется самой монадой? Если да, то как ...
В Haskell, как и во многих других функциональных языках, функция foldl определена таким образом, что, например, foldl (-) 0 [1,2,3, 4] = -10. Это нормально, потому что foldl (-) 0 [1, 2,3,4] по определению ((...
Я знаю, что вы можете использовать set foldcolumn = 1 для включения колонки свертки, но есть ли способ автоматически включить ее только тогда, когда в файле есть свертки?
Я новичок в Haskell, и даже прочитав несколько объяснений foldr / foldl, я не могу понять, почему я получаю разные результаты ниже. Какое объяснение? Prelude> foldl (\ _ -> ...
Может ли кто-нибудь предоставить некоторые примеры для того, как /: \ и /: \ на самом деле используются? Я предполагаю, что они ярлыки до методов уменьшения / сгиба, но нет примеров о том, как они на самом деле привыкли в ...
При работе с большими алгебраическими типами данных в Haskell существует конкретный рекурсивный обход, который не захватывается путем сворачивания по типу данных. Например, предположим, что у меня есть простой тип данных ...
У меня есть проблемы со следующим отрывком. Haskell (отличная книга IMO, не его преобразования): одно большое значение состоит в том, что правильные складки работают на бесконечных списках, тогда как левые не делают! Чтобы поставить ...
В следующей статье блога показано, как в F # foldBack можно сделать хвостовой рекурсивной с использованием стиля передачи продолжения. В Scala это означало бы, что: def foldBack [T, U] (l: List [T], acc: U) (f: (T, U) => ...
Похоже, что foldr выполняет какое-то слияние с пониманием списка, поэтому для него требуется меньше памяти (11 МБ) по сравнению с tofoldl (21 МБ), например, в этом примере myfunc = сумма $ foldr g acc [f x | x <- xs ...
Мне нужно сломать фолдл. Вот фиктивный пример того, как выйти из сгиба, когда я подсчитываю сумму значений в списке и встречаю слишком большое значение (например, 10) L = [1,2,3,4,10,5,6,7], Res = попробуй ...
Я озадачен. Я могу написать это: import Control.Monad main = print $ head $ (foldr (.) Id [f, g]) [3] где f = (1 :) g = undefined и результат равен 1. Это имеет смысл, потому что это уменьшает ...
В Haskell есть две функции левой свёртки для списков: foldl, и «строгий» вариант, фолдль. Проблема с нестрогим foldl состоит в том, что он строит башню преобразователей: foldl (+) 0 [1..5]
-> ((((0 + ...
Согласно http://en.wikipedia.org/wiki/Fold_(higher-order_function), правая складка может работать с бесконечными списками, если полный список не нужно оценивать. Это можно увидеть в действии в haskell:...
Я пытался решить проблему, которая требовала максимума Значение списка после сопоставления функцией. Список находится диапазон от A до B, где A> B или B> A. Поскольку Haskell также может определить ...
Есть ли какой-нибудь плагин для складывания HTML-тегов в Vim? Или есть другой способ настроить ярлык для сворачивания или разворачивания html-тегов? Я хотел бы сворачивать / разворачивать HTML-теги так же, как я делаю сворачивание отступов.
Я искал способ определения fold для неизменяемого объекта. Set: def fold [A1>: A] (z: A1) (op: (A1, A1) ⇒ A1): A1, но foldLeft определяется как: def foldLeft [B] (z: B) (op: (B, A) ⇒ B): B Это выглядит. ..
I have a Data.Map structure that maps Strings to Stringss. For whatever reason, I want to print the contents of the map in the format key: value using foldrWithKey, like so: M.foldrWithKey (\k v b -&...