0
ответов

Пример различия между List.fold и List.foldBack

Насколько я понимаю, разница между List.fold и List.foldBack заключается в том, что foldBack перебирает свой список в обратном порядке. Обе функции накапливают результат из элементов в списке. Я ...
вопрос задан: 14 January 2015 14:41
0
ответов

Всегда ли сворачивание haskell принимает двухпараметрическую лямбду?

Haskell newb здесь Я работаю над этой проблемой в haskell: (**) Устранить последовательные дубликаты элементов списка. Если список содержит повторяющиеся элементы, их следует заменить одной копией ...
вопрос задан: 12 January 2015 16:36
0
ответов

Разница между fold и foldLeft или foldRight?

ПРИМЕЧАНИЕ. Я использую Scala 2.8 - может ли это быть проблемой? Почему я не могу использовать функцию сворачивания так же, как foldLeft или foldRight? В скаладоке Set сказано, что: Результат сворачивания может только быть ...
вопрос задан: 20 September 2014 23:00
0
ответов

Почему у Option нет метода сворачивания?

Интересно, почему у scala.Option нет метода fold как это определено: fold (ifSome: A => B, ifNone: => B) эквивалент map (ifSome) .getOrElse (ifNone) Нет ничего лучше, чем использование map + ...
вопрос задан: 13 February 2014 21:17
0
ответов

Полный список синонимов для сокращения

Функция высшего порядка, обычно известная как сокращение, имеет множество синонимов в разных языках. Внезапно я могу придумать: foldr, foldl (также известный как правая складка и левая складка) (Хаскелл) inject ...
вопрос задан: 14 March 2013 10:23
0
ответов

Перекрестная проверка в Weka

Из того, что я читал, я всегда думал, что перекрестная проверка выполняется следующим образом: при k-кратной перекрестной проверке исходная выборка случайным образом разбивается на k подвыборок. Из k подвыборок...
вопрос задан: 21 December 2012 11:26
0
ответов

Как я могу проверить, действителен ли BST?

Как я могу проверить, является ли BST допустимым, учитывая его определение и используя обобщенную версию свертывания для BST? данные (Ord a, Показать a, Читать a) => BST a = Void | Узел {val :: a, левый, правый :: ...
вопрос задан: 20 September 2012 20:57
0
ответов

Есть ли у Скалаз что-то, что можно накопить как в ошибках, так и в успехах?

Я начал использовать Scalaz 7 Validation and/or disjunction для обработки списка возможных неудачных операций и управления их результатом. Есть два хорошо задокументированных случая для такого рода вариантов использования :1/...
вопрос задан: 10 August 2012 14:39
0
ответов

Что такое & #39;pythonic& #39; эквивалентно & #39;fold& #39; функции из функционального программирования?

Каков наиболее идиоматический способ добиться чего-то вроде следующего в Haskell :foldl (+ )0 [1,2,3,4,5] --> 15 Или его эквивалент в Ruby :[1,2,3,4,5].inject (0 ){|m,x| м + х} #> 15...
вопрос задан: 28 April 2012 18:44
0
ответов

Свертки против рекурсии в Erlang

Согласно Learn you some Erlang : практически любая функция, которую вы можете придумать, которая сокращает списки до 1 элемента, может быть выражена как свертка. [...] Это означает, что fold универсален в том смысле, что вы ...
вопрос задан: 30 March 2012 00:52
0
ответов

Как свернуть все блоки ниже определенного уровня в организационном режиме emacs? [дубликат]

Мне часто нужно видеть информацию до (на самом деле) определенного уровня детализации. Есть ли способ развернуть блоки до определенного уровня, а остальные скрыть? Например: * имя Джо ** номер дома 111-111-...
вопрос задан: 21 March 2012 21:46
0
ответов

Почему не работает передача Nil в foldLeft?

Когда я создаю список с помощью foldLeft, меня часто раздражает необходимость явно вводить вводимый параметр, и я хочу вместо этого просто использовать `Nil' — вот надуманный пример: scala> List(1,2,3).. ..
вопрос задан: 20 March 2012 11:33
0
ответов

Предложения по оптимизации простого Scala foldLeft по нескольким значениям?

Я повторно реализую некоторый код (простой алгоритм байесовского вывода, но это не очень важно) из От Java до Scala. Я хотел бы реализовать его максимально производительным способом, сохраняя при этом ...
вопрос задан: 2 February 2012 17:00
0
ответов

Есть ли в Haskell foldlM '?

Каким образом строго над монадой? Data.Foldable имеет строгую свертку и монадическую свертку, но не строгую свертку? Строгость как-то определяется самой монадой? Если да, то как ...
вопрос задан: 18 January 2012 23:24
0
ответов

Почему foldl определена странным образом в Racket?

В Haskell, как и во многих других функциональных языках, функция foldl определена таким образом, что, например, foldl (-) 0 [1,2,3, 4] = -10. Это нормально, потому что foldl (-) 0 [1, 2,3,4] по определению ((...
вопрос задан: 8 January 2012 16:20
0
ответов

gvim автоматически показывает свернутую колонку, когда в файле есть свертки

Я знаю, что вы можете использовать set foldcolumn = 1 для включения колонки свертки, но есть ли способ автоматически включить ее только тогда, когда в файле есть свертки?
вопрос задан: 6 January 2012 11:30
0
ответов

foldl / foldr query

Я новичок в Haskell, и даже прочитав несколько объяснений foldr / foldl, я не могу понять, почему я получаю разные результаты ниже. Какое объяснение? Prelude> foldl (\ _ -> ...
вопрос задан: 30 December 2011 02:44
0
ответов

Scala Vector Fold Syntax (/: а: \ и /: \)

Может ли кто-нибудь предоставить некоторые примеры для того, как /: \ и /: \ на самом деле используются? Я предполагаю, что они ярлыки до методов уменьшения / сгиба, но нет примеров о том, как они на самом деле привыкли в ...
вопрос задан: 25 December 2011 23:00
0
ответов

Рекурсивный восходящий обход алгебраических типов данных

При работе с большими алгебраическими типами данных в Haskell существует конкретный рекурсивный обход, который не захватывается путем сворачивания по типу данных. Например, предположим, что у меня есть простой тип данных ...
вопрос задан: 25 December 2011 22:02
0
ответов

Левое и правое складное в течение бесконечного списка

У меня есть проблемы со следующим отрывком. Haskell (отличная книга IMO, не его преобразования): одно большое значение состоит в том, что правильные складки работают на бесконечных списках, тогда как левые не делают! Чтобы поставить ...
вопрос задан: 25 December 2011 22:00
0
ответов

Можно ли использовать продолжения, чтобы сделать хвостовую рекурсию foldRight рекурсивной?

В следующей статье блога показано, как в F # foldBack можно сделать хвостовой рекурсивной с использованием стиля передачи продолжения. В Scala это означало бы, что: def foldBack [T, U] (l: List [T], acc: U) (f: (T, U) => ...
вопрос задан: 18 December 2011 03:26
0
ответов

Создана ли какая-либо промежуточная структура данных в понимании списков

Похоже, что foldr выполняет какое-то слияние с пониманием списка, поэтому для него требуется меньше памяти (11 МБ) по сравнению с tofoldl (21 МБ), например, в этом примере myfunc = сумма $ foldr g acc [f x | x <- xs ...
вопрос задан: 9 December 2011 17:01
0
ответов

Простой способ сломать фолд

Мне нужно сломать фолдл. Вот фиктивный пример того, как выйти из сгиба, когда я подсчитываю сумму значений в списке и встречаю слишком большое значение (например, 10) L = [1,2,3,4,10,5,6,7], Res = попробуй ...
вопрос задан: 7 December 2011 08:44
0
ответов

Складывание, функциональная композиция, монады и лень, о боже?

Я озадачен. Я могу написать это: import Control.Monad main = print $ head $ (foldr (.) Id [f, g]) [3] где f = (1 :) g = undefined и результат равен 1. Это имеет смысл, потому что это уменьшает ...
вопрос задан: 23 November 2011 22:29
0
ответов

Будет ли foldl когда-либо предпочтительнее своего строгого кузена foldl '?

В Haskell есть две функции левой свёртки для списков: foldl, и «строгий» вариант, фолдль. Проблема с нестрогим foldl состоит в том, что он строит башню преобразователей: foldl (+) 0 [1..5] -> ((((0 + ...
вопрос задан: 23 November 2011 00:21
0
ответов

foldRight на бесконечной ленивой структуре

Согласно http://en.wikipedia.org/wiki/Fold_(higher-order_function), правая складка может работать с бесконечными списками, если полный список не нужно оценивать. Это можно увидеть в действии в haskell:...
вопрос задан: 20 October 2011 02:26
0
ответов

Почему [1..n] не обрабатывается так же, как [N..1] в Haskell?

Я пытался решить проблему, которая требовала максимума Значение списка после сопоставления функцией. Список находится диапазон от A до B, где A> B или B> A. Поскольку Haskell также может определить ...
вопрос задан: 8 September 2011 13:54
0
ответов

Как складывать / разворачивать HTML-теги с помощью Vim

Есть ли какой-нибудь плагин для складывания HTML-тегов в Vim? Или есть другой способ настроить ярлык для сворачивания или разворачивания html-тегов? Я хотел бы сворачивать / разворачивать HTML-теги так же, как я делаю сворачивание отступов.
вопрос задан: 22 August 2011 13:33
0
ответов

Почему fold имеет следующий тип в Scala?

Я искал способ определения fold для неизменяемого объекта. Set: def fold [A1>: A] (z: A1) (op: (A1, A1) ⇒ A1): A1, но foldLeft определяется как: def foldLeft [B] (z: B) (op: (B, A) ⇒ B): B Это выглядит. ..
вопрос задан: 9 August 2011 17:18
0
ответов

Can't perform I/O in foldr?

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 -&...
вопрос задан: 16 May 2011 21:11