0
ответов

Какая хорошая структура постоянных коллекций для использования в java?

Под постоянными коллекциями я подразумеваю коллекции, подобные тем, что в clojure. Например, у меня есть список с элементами (a, b, c). В обычном списке, если я добавлю d, в моем исходном списке будут (a, b, c, d) в качестве его ...
вопрос задан: 20 December 2011 12:51
0
ответов

Декомпозиция (модульность) в функциональных языках

Есть идея: функции (в FP) могут быть составлены аналогично компонентам в ООП. Для компонентов в ООП мы используем интерфейсы. Для функций мы можем использовать делегаты. Цель состоит в том, чтобы добиться декомпозиции, ...
вопрос задан: 19 December 2011 23:06
0
ответов

Ошибка компиляции корней уравнений на языке Haskell

Следующий алгоритм должен вычислить корень уравнения 2-й степени, но его компиляция выдает ошибку компиляции. Я скопировал его из учебника. 2 roota.hs:5:20: ошибка разбора на входе `=' ...
вопрос задан: 18 December 2011 15:45
0
ответов

Есть ли язык программирования, в котором каждая функция, по сути, выполняется как отдельный субъект?

Есть ли язык программирования, в котором вам не нужно определять акторов самостоятельно - каждая функция просто выполнялся как отдельный субъект (что может означать отдельный поток, если есть свободные ядра)…
вопрос задан: 17 December 2011 23:13
0
ответов

Какова связь сворачивания в Option, Either и т. Д. И сворачивания в Traversable?

Scalaz предоставляет метод с именем fold для различных ADT, таких как Boolean, Option [_], Validation [_, _], Either [_, _] и т. д. Этот метод в основном принимает функции, соответствующие всем возможным случаям для этого ...
вопрос задан: 16 December 2011 20:48
0
ответов

В чем разница между функцией Clojure (nth [coll index]) и композицией (last (take index coll))

Я пытаюсь проработать книгу Стюарта Хэллоуэя «Программирование Clojure». Вся эта функциональная составляющая для меня очень нова. Я понимаю, как (defn fibo [] (map first (iterate (fn [[ab]] [b (+ ab)]]) ...
вопрос задан: 15 December 2011 15:32
0
ответов

Можно ли реализовать js-версию распаковки Haskell чисто функционально?

Я реализую алгоритм точки в многоугольнике javascript-преобразования лучей чисто функционально (без особой причины для этого) . Я застрял, так как мне нужно было получить два массива из 2-мерного ...
вопрос задан: 15 December 2011 12:25
0
ответов

Самая быстрая неизменяемая структура данных списка для большого количества конкатенации и одной итерации

Я работаю с Haskell. Стандартное объединение списков наивно и медленно. Моя ситуация такова, что у меня есть алгоритм, который создает объединение единого списка (порядок не имеет значения, так что это может быть либо ...
вопрос задан: 15 December 2011 02:56
0
ответов

Как я могу использовать композицию Клейсли с функциями, возвращающими проверки?

Как мне составить два функции, возвращающие проверки? Ниже приведены мои попытки, которые не сработали: scala> def f: Int => Validation [String, Int] = i => if (i% 2 == 0) Success (i * 2) else ...
вопрос задан: 13 December 2011 14:25
0
ответов

Возможно ли наследование типов данных в Clojure?

Например, если у меня есть две разные записи, но у них есть несколько общих полей, есть ли способ сделать так, чтобы обе записи имели общую базовую запись? Кажется, что протоколы позволяют только объявлять ...
вопрос задан: 12 December 2011 02:34
0
ответов

Оптимизация строгости и распределение памяти в Haskell

Я немного изучил Haskell, реализовав алгоритм выбора функций. Я получил производительность с 20 секунд на тестовом наборе данных до 5 секунд, когда программа C обрабатывает тот же набор данных в ...
вопрос задан: 11 December 2011 23:10
0
ответов

Scala Functor and Monad differences

Может кто-нибудь объяснить различия между Functor и Monad в контексте Scala?
вопрос задан: 10 December 2011 23:01
0
ответов

Две разные функции Фибоначчи эквивалентны

Я пытаюсь понять, что именно означает доказывать правильность программы. Начинаю с нуля и зацикливаюсь на первых шагах / введении в тему. В этой статье об общем функционале ...
вопрос задан: 9 December 2011 16:53
0
ответов

Как избавиться от этой двусмысленности?

Я почти уверен, что об этом уже спрашивали раньше, однако мне не удалось найти правильный ответ: я попытался устранить двусмысленность в следующем примерном фрагменте кода: {- # LANGUAGE ...
вопрос задан: 7 December 2011 14:34
0
ответов

Наиболее распространенный паттерн для использования базы данных в функциональном языке, учитывая желание не иметь побочных эффектов?

Я пытаюсь разобраться в основной концепции функциональных языков: "Центральной концепцией функциональных языков является то, что результат функции определяется ее входом, и только его входом. ...
вопрос задан: 7 December 2011 02:10
0
ответов

Как относиться к типу из внешнего контекста

Давайте рассмотрим следующий фрагмент кода: blah :: а -> б -> а blah xy = ble x, где ble :: b -> b ble x = x Это прекрасно компилируется под GHC, что по существу означает, что b из ...
вопрос задан: 6 December 2011 12:50
0
ответов

Понимание неизменяемых структур данных

Я изучаю scala и, как хороший студент, стараюсь соблюдать все правила, которые нашел. Одно из правил - это: НЕИЗМЕНЯЕМОСТЬ!!! Поэтому я стараюсь все кодировать с неизменяемыми структурами данных и vals, и иногда это ...
вопрос задан: 5 December 2011 14:20
0
ответов

n-ary curry в CoffeeScript

Я играл с CoffeeScript, когда обнаружил, что пишу следующие строки, а затем смотрю на них с благоговением: compose = (f, g) -> (x) -> f g x карри = (f) -> (x) -> (y) -> f(x, y) ...
вопрос задан: 5 December 2011 11:12
0
ответов

Как программировать на Java без побочных эффектов?

Я много лет программировал на Java, а в последние годы пристрастился к Haskell, и сейчас изучаю Scala. Мой вопрос: как программировать на Java без побочных эффектов? то есть, как я могу вручную сделать то, что Scala ...
вопрос задан: 5 December 2011 07:32
0
ответов

Haskell Печать строк в функции

Я новичок в Haskell, и мне интересно, есть ли способ вывести строки «отладки» внутри функции в Haskell? I.E. Я хочу отладить, какие значения вводятся в функцию. Мой текущий код ...
вопрос задан: 4 December 2011 04:21
0
ответов

Функция возвращает «Нет решения» вместо «Ничего»

У меня есть стандартный тип данных, представляющий формулы логики предикатов. Функция, представляющая правило исключения естественного вывода для дизъюнкции, может выглядеть так: d_el p q = if p =: (Dis r s) && ...
вопрос задан: 3 December 2011 05:20
0
ответов

Каковы практические применения аппликативного стиля?

Я программист на Scala, сейчас изучаю Haskell. Легко найти практические примеры использования и примеры из реальной жизни для объектно-ориентированных концепций, таких как декораторы, шаблоны стратегии и т. Д. Книги и сети заполнены ...
вопрос задан: 2 December 2011 14:41
0
ответов

Рекурсивные функции, переполнение стека и Y-комбинаторы

У меня есть рекурсивная функция (на C #), которую мне нужно вызвать около 800 миллионов раз; это, очевидно, обычно приводит к переполнению стека примерно после 900-го вызова. Я разослал это нескольким ...
вопрос задан: 2 December 2011 07:10
0
ответов

Как рекомендации по функциональному программированию для статических методов влияют на тестируемость?

Чем больше я погружаюсь в функциональное программирование, я читаю рекомендацию отдавать предпочтение статическим методам в пользу нестатических. . Вы можете прочитать об этой рекомендации в этой книге, например: http: // www ....
вопрос задан: 29 November 2011 15:47
0
ответов

Комбинатор Y, бесконечные типы и анонимная рекурсия в Haskell

Я пытался решить задачу максимальной суммы подпоследовательностей и придумал аккуратное решение msss :: (Ord a, Num а) => [а] -> а msss = f 0 0 f gmax _ [] = gmax f gmax lmax (x: xs) = let g = ...
вопрос задан: 29 November 2011 09:26
0
ответов

В чем практическое применение лени как встроенной функции языка?

Достаточно очевидно, почему язык функционального программирования, который хочет быть ленивым, должен быть чистым.Я смотрю на обратный вопрос: если язык хочет быть чистым, есть ли большое преимущество в том, чтобы быть ...
вопрос задан: 27 November 2011 18:08
0
ответов

Почему foldLeft в Scala имеет более низкую производительность, чем итерация с индексом для строк?

Я сравниваю производительность двух реализаций atoi. Первый - это итерация входной строки с получением символов с помощью charAt; второй - с помощью foldLeft. object Atoi {def withRandomAccess (...
вопрос задан: 27 November 2011 15:22
0
ответов

Как монада «Может быть» действует как короткое замыкание?

Я пытаюсь получить более глубокое понимание монад. Поэтому я начал немного копаться в «Может быть монаде». Есть одна вещь, в которой я, кажется, не понимаю. Прочтите это: «Итак, Может быть, Связь ...
вопрос задан: 26 November 2011 12:00
0
ответов

Haskell string tokenizer function

Мне нужен String tokenizer в Haskell, но, видимо, в Prelude или других модулях ничего уже не определено. Есть splitOn в Data.Text, но использовать его очень сложно, потому что нужно обернуть ...
вопрос задан: 25 November 2011 04:58
0
ответов

Как понимать сегментированные биномиальные кучи, описанные в <Чисто функциональные структуры данных>

В главе 6.3.1 диссертации «Чисто функциональные структуры данных» говорится: «Затем, когда мы создаем новое дерево из нового элемента и отрезка деревьев рангов 0 ... r-1, мы просто сравниваем новое ...
вопрос задан: 23 November 2011 10:27