I приходится часто транспонировать «прямоугольную» коллекцию-коллекций в Scala, например: список карт, карту списков, карту карт, набор списков, карту наборов и т. д. Поскольку коллекции могут быть единообразно . ..
Лисп обладает свойством гомоиконности, то есть представление кода, используемого реализацией языка (списки), также доступно и идиоматически используется программами, которые хотят ...
Мне нужна функция +++, которая складывает два математических вектора. Я мог бы реализовать векторы как [x, y, z] и использовать: (+++) :: (Num a) => [a] -> [a] -> [a]
(+++) = zipWith (+) И, таким образом, разместить любые ...
Является ли каррирование для функционального программирования тем же самым, что и перегрузка для объектно-ориентированного программирования? Если нет, то почему? (если возможно, с примерами) Tks
Создатель языка Clojure утверждает, что «открытый и большой набор функций работает с открытым и небольшим набором расширяемых абстракций — это ключ к алгоритмическое повторное использование и библиотека...
У меня есть объект Java, отображаемый в спящем режиме, JKL, который полон кучи обычных полей, отображаемых в спящем режиме (таких как строки и целые числа). Я добавил к нему новое встроенное поле (которое находится в том же...
Я пытаюсь сделать вывод о типе следующего выражения: let rec fix f = f (fix f), которому должен быть присвоен тип (a -> a) -> a После использования восходящего алгоритма (описанного в ...
Я новичок в функциональном программировании, поэтому некоторые проблемы кажутся более сложными для решения с использованием функционального подхода. Скажем, у меня есть список чисел, например, от 1 до 10 000, и я хочу получить элементы списка...
API для продолжений с разделителями с несколькими подсказками описывается в документе Delimited Control in OCaml, Abstractly and Concretely System Description. Мой вопрос касается типа push_subcont : ('a,...
По крайней мере, в некоторых языках семейства ML вы можете определить записи, для которых вы можете выполнять сопоставление с образцом, например. http://learnyouahaskell.com/making-our-own-types-and-typeclasses — основная идея заключается в том, что…
Кажется, что идеи Фреге о классах типов значительно отличаются от Хаскеля. В частности: Синтаксис кажется другим по непонятной причине.
Типы функций не могут иметь экземпляров классов. ...
Обе концепции позволяют создавать новые типы данных.
Единственное отличие, которое я вижу, заключается в том, что в функциональных языках можно выполнять сопоставление с образцом для алгебраических типов данных. Но нет сопоставимого...
Существует ли инструмент, который позволяет вам аннотировать функции/методы как «чистые», а затем анализировать код, чтобы проверить, не имеют ли указанные функции/методы побочных эффектов?
В прошлую пятницу на конкурсе французского программирования нам дали задачу на складывание бумаги которая заключалась в следующем :Имея квадратный лист бумаги и схему складывания, напишите функция "сложить (шаблон )", которая...
Есть ли какая-то функция в haskell, которая оценивается как (filter p xs, filter (not.p )xs)в одном обходе списка (вот два)или есть какое-то общее название в функциональном программировании для такого рода...
Я хочу написать функцию saveStuff, которая сохраняет что-то в файл после прохождения определенных тестов. Если тесты не пройдены, мне нужно поднять ошибку. Какой должен быть тип результата этой функции? Я подумал...
Я понимаю, что такое каррирование, и знаю, как его использовать. Это не мои вопросы, скорее мне любопытно, как это на самом деле реализовано на каком-то более низком уровне, чем, скажем, код Haskell…
Я только что придумал (еще одно! )реализация каррирования функций на C++ с использованием метапрограммирования шаблонов. (Я почти уверен, что другие реализации лучше/более полны, чем моя, но я...
Я пытаюсь написать функцию, которая принимает функцию как одну из его аргументы - задача, которую я делал много раз раньше. Это прекрасно работает: int RunFunction(Func f, int input) { return f(...
У меня есть метод: 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 [...
Каков наиболее идиоматический способ добиться чего-то вроде следующего в Haskell :foldl (+ )0 [1,2,3,4,5] --> 15 Или его эквивалент в Ruby :[1,2,3,4,5].inject (0 ){|m,x| м + х} #> 15...
Функциональное программирование "избегает состояния и изменяемых данных". Замыкания скрывают состояние, связывая свое лексическое окружение, и таким образом являются замкнутыми по отношению к своим свободным переменным. Как Haskell является чисто функцион
Я только что написал этот код:(параметры defn [преобразование -заводское состояние] (ленивый -seq (let [[состояние r1] (унифицированное состояние )[состояние r2] (унифицированное состояние )[t состояние ] (преобразование -...
Пусть это types = type intC = int;; введите boolC = bool; введите строкуC = строка;; компонент типа = A of intC | B из boolC | C строкиC;; Если я хочу применить функцию к типу а компонента А,...
Я новичок в XSLT и, возможно, рассматриваю свою проблему под неправильным углом -применительно к таким языкам, как C++ и Java. Я надеюсь, что кто-то может мне помочь. Я хочу сделать циклический вызов (xsl :для -каждого )...
Учитывая следующую функцию f с двумя аргументами, каков стандартный способ применить map только к x? def f (x,y ):print x,y Более конкретно, я хотел бы выполнить следующую операцию с...
Из FAQ по обратимым вычислениям :Достижение максимально возможной вычислительной производительности при заданной скорости диссипации битов обычно требует явной обратимости не только при самых низких...
Есть ли более чистый способ сделать это? Я пытаюсь сопоставить шаблон (a' option*(char *nodeType )list ref, единственный способ, которым я нашел, это :сопоставить a с | _, l -> сопоставить !l с...
Некоторое время назад в одном из расширений Haskell (не могу найти ссылку ), а недавно в Уре обнаружил, что имена (например, полей записи )образуют Вид. Может кто-нибудь объяснить, почему абстракции типов недостаточно...
Я только начинаю работать с FP и использую Scala, что может быть не лучшим способом, поскольку я всегда могу вернуться к императивному стилю, если дела станут тяжелыми. Я просто не хочу. У меня очень ...