0
ответов

Транспонирование произвольного набора наборов в Scala

I приходится часто транспонировать «прямоугольную» коллекцию-коллекций в Scala, например: список карт, карту списков, карту карт, набор списков, карту наборов и т. д. Поскольку коллекции могут быть единообразно . ..
вопрос задан: 19 May 2012 05:04
0
ответов

Теория гомоиконических типов

Лисп обладает свойством гомоиконности, то есть представление кода, используемого реализацией языка (списки), также доступно и идиоматически используется программами, которые хотят ...
вопрос задан: 19 May 2012 00:09
0
ответов

Haskell: Между списком и кортежем

Мне нужна функция +++, которая складывает два математических вектора. Я мог бы реализовать векторы как [x, y, z] и использовать: (+++) :: (Num a) => [a] -> [a] -> [a] (+++) = zipWith (+) И, таким образом, разместить любые ...
вопрос задан: 16 May 2012 21:25
0
ответов

Является ли каррирование тем же самым, что и перегрузка?

Является ли каррирование для функционального программирования тем же самым, что и перегрузка для объектно-ориентированного программирования? Если нет, то почему? (если возможно, с примерами) Tks
вопрос задан: 16 May 2012 00:42
0
ответов

Принцип «много функций, работающих с несколькими абстракциями» против ООП

Создатель языка Clojure утверждает, что «открытый и большой набор функций работает с открытым и небольшим набором расширяемых абстракций — это ключ к алгоритмическое повторное использование и библиотека...
вопрос задан: 15 May 2012 18:37
0
ответов

Сопоставление FunctionalJava Option с Hibernate

У меня есть объект Java, отображаемый в спящем режиме, JKL, который полон кучи обычных полей, отображаемых в спящем режиме (таких как строки и целые числа). Я добавил к нему новое встроенное поле (которое находится в том же...
вопрос задан: 15 May 2012 16:17
0
ответов

Вывод рекурсивных выражений с использованием Хиндли Милнера и ограничений

Я пытаюсь сделать вывод о типе следующего выражения: let rec fix f = f (fix f), которому должен быть присвоен тип (a -> a) -> a После использования восходящего алгоритма (описанного в ...
вопрос задан: 14 May 2012 22:10
0
ответов

Продолжить информацию о предыдущих вычислениях

Я новичок в функциональном программировании, поэтому некоторые проблемы кажутся более сложными для решения с использованием функционального подхода. Скажем, у меня есть список чисел, например, от 1 до 10 000, и я хочу получить элементы списка...
вопрос задан: 14 May 2012 12:28
0
ответов

Понимание API продолжений с разделителями с несколькими подсказками

API для продолжений с разделителями с несколькими подсказками описывается в документе Delimited Control in OCaml, Abstractly and Concretely System Description. Мой вопрос касается типа push_subcont : ('a,...
вопрос задан: 13 May 2012 01:08
0
ответов

Только язык Scala с перегруженными экстракторами?

По крайней мере, в некоторых языках семейства ML вы можете определить записи, для которых вы можете выполнять сопоставление с образцом, например. http://learnyouahaskell.com/making-our-own-types-and-typeclasses — основная идея заключается в том, что…
вопрос задан: 12 May 2012 07:16
0
ответов

Как работают классы Фреге?

Кажется, что идеи Фреге о классах типов значительно отличаются от Хаскеля. В частности: Синтаксис кажется другим по непонятной причине. Типы функций не могут иметь экземпляров классов. ...
вопрос задан: 10 May 2012 13:11
0
ответов

Родственна ли концепция алгебраического типа данных определениям классов в объектно-ориентированных языках?

Обе концепции позволяют создавать новые типы данных. Единственное отличие, которое я вижу, заключается в том, что в функциональных языках можно выполнять сопоставление с образцом для алгебраических типов данных. Но нет сопоставимого...
вопрос задан: 9 May 2012 06:12
0
ответов

Обеспечение побочных эффектов в python

Существует ли инструмент, который позволяет вам аннотировать функции/методы как «чистые», а затем анализировать код, чтобы проверить, не имеют ли указанные функции/методы побочных эффектов?
вопрос задан: 9 May 2012 04:36
0
ответов

(Un )складывание листа бумаги в соответствии с шаблоном и указание порядка слоев

В прошлую пятницу на конкурсе французского программирования нам дали задачу на складывание бумаги которая заключалась в следующем :Имея квадратный лист бумаги и схему складывания, напишите функция "сложить (шаблон )", которая...
вопрос задан: 7 May 2012 16:16
0
ответов

Стандартное имя для (filter p xs, filter (not.p)xs)

Есть ли какая-то функция в haskell, которая оценивается как (filter p xs, filter (not.p )xs)в одном обходе списка (вот два)или есть какое-то общее название в функциональном программировании для такого рода...
вопрос задан: 5 May 2012 20:36
0
ответов

Какой должен быть тип результата этой функции?

Я хочу написать функцию saveStuff, которая сохраняет что-то в файл после прохождения определенных тестов. Если тесты не пройдены, мне нужно поднять ошибку. Какой должен быть тип результата этой функции? Я подумал...
вопрос задан: 4 May 2012 22:27
0
ответов

Как выполняются функции каррирования?

Я понимаю, что такое каррирование, и знаю, как его использовать. Это не мои вопросы, скорее мне любопытно, как это на самом деле реализовано на каком-то более низком уровне, чем, скажем, код Haskell…
вопрос задан: 4 May 2012 17:10
0
ответов

«Глубокое» каррирование функций в C++ с использованием шаблонного метапрограммирования

Я только что придумал (еще одно! )реализация каррирования функций на C++ с использованием метапрограммирования шаблонов. (Я почти уверен, что другие реализации лучше/более полны, чем моя, но я...
вопрос задан: 4 May 2012 06:56
0
ответов

Функция функции работает в одном направлении, а не в другом

Я пытаюсь написать функцию, которая принимает функцию как одну из его аргументы - задача, которую я делал много раз раньше. Это прекрасно работает: int RunFunction(Func f, int input) { return f(...
вопрос задан: 3 May 2012 23:05
0
ответов

Ruby: элегантная инициализация массива и возврат в Ruby

У меня есть метод: def deltas_to_board_locations (deltas, x, y) board_coords = [] deltas.each_slice (2) do | slice | board_coords << x + slice [0] board_coords << y + slice [...
вопрос задан: 30 April 2012 10:36
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
ответов

Являются ли замыкания нарушением парадигмы функционального программирования?

Функциональное программирование "избегает состояния и изменяемых данных". Замыкания скрывают состояние, связывая свое лексическое окружение, и таким образом являются замкнутыми по отношению к своим свободным переменным. Как Haskell является чисто функцион
вопрос задан: 28 April 2012 12:40
0
ответов

Как лучше перебирать состояние в монаде Clojure (?)

Я только что написал этот код:(параметры defn [преобразование -заводское состояние] (ленивый -seq (let [[состояние r1] (унифицированное состояние )[состояние r2] (унифицированное состояние )[t состояние ] (преобразование -...
вопрос задан: 26 April 2012 18:54
0
ответов

Как применить функцию к варианту?

Пусть это types = type intC = int;; введите boolC = bool; введите строкуC = строка;; компонент типа = A of intC | B из boolC | C строкиC;; Если я хочу применить функцию к типу а компонента А,...
вопрос задан: 26 April 2012 16:57
0
ответов

Распознавание выполнения первого цикла в XSLT

Я новичок в XSLT и, возможно, рассматриваю свою проблему под неправильным углом -применительно к таким языкам, как C++ и Java. Я надеюсь, что кто-то может мне помочь. Я хочу сделать циклический вызов (xsl :для -каждого )...
вопрос задан: 25 April 2012 15:01
0
ответов

Применение map для частичного аргумента

Учитывая следующую функцию f с двумя аргументами, каков стандартный способ применить map только к x? def f (x,y ):print x,y Более конкретно, я хотел бы выполнить следующую операцию с...
вопрос задан: 25 April 2012 11:41
0
ответов

Платформа обратимых вычислений

Из FAQ по обратимым вычислениям :Достижение максимально возможной вычислительной производительности при заданной скорости диссипации битов обычно требует явной обратимости не только при самых низких...
вопрос задан: 25 April 2012 10:47
0
ответов

OCaml -Сопоставление шаблона со ссылкой на список в кортеже

Есть ли более чистый способ сделать это? Я пытаюсь сопоставить шаблон (a' option*(char *nodeType )list ref, единственный способ, которым я нашел, это :сопоставить a с | _, l -> сопоставить !l с...
вопрос задан: 25 April 2012 03:47
0
ответов

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

Некоторое время назад в одном из расширений Haskell (не могу найти ссылку ), а недавно в Уре обнаружил, что имена (например, полей записи )образуют Вид. Может кто-нибудь объяснить, почему абстракции типов недостаточно...
вопрос задан: 24 April 2012 11:59
0
ответов

Как * правильный * способ обработки POST in FP?

Я только начинаю работать с FP и использую Scala, что может быть не лучшим способом, поскольку я всегда могу вернуться к императивному стилю, если дела станут тяжелыми. Я просто не хочу. У меня очень ...
вопрос задан: 23 April 2012 02:17