Curry - экспериментальный язык программирования функциональной логики, основанный на языке Haskell. Он объединяет элементы функционального и логического программирования, включая интеграцию программирования в ограничениях.
2 ответа

Самый полезный и поучительный функционально-логический язык для изучения

Я был очень удивлен силой Пролога. Потребовалось некоторое время, чтобы разобраться, но мне показалось, что это был самый крутой декларативный язык. Вот почему недавно, после двух лет некоторого функционального программирования в Scala, я решил снов…
1 ответ

Почему недетерминированная функция выбора в std lib Карри определяется не просто, а с помощью вспомогательной функции с двумя аргументами?

Рассмотрим функцию choose на языке программирования карри с указанием, что "(choose xs) недетерминированно выбирает один элемент из списка xs". Я реализовал бы это прямо через два альтернативных недетерминированных правила: choose :: [a] -> a cho…
1 ответ

Арго: Тип не соответствует протоколу "Декодируемый"

Я только начинаю с Арго, чтобы разобрать мой ответ json на объекты. У меня следующий код (см. Ниже), но он выдает следующие ошибки: Тип "Приложение" не соответствует протоколу "Декодируемый" Невозможно вызвать 'curry' со списком аргументов типа '((a…
24 май '16 в 09:16
1 ответ

Какие проблемы решает выбор карри?

Я знаком с тем, какой выбор оператора ((?)), принимает два аргумента и соответствует им обоим. Мы могли бы определить это следующим образом: a?_=a _?b=b Это может быть использовано для введения недетерминизма между двумя значениями. Однако, что я не…
1 ответ

Как ограничить пространство поиска в карри?

Ниже моя первая программа на карри. Он печатает последовательность шагов, необходимых для достижения желаемого решения (пройти через закрытую дверь). Evaluating expression: main Done (Just [Open,Walk,Close]) Как я могу сделать это прекратить при пои…
05 июл '14 в 23:30
1 ответ

Генерация парсера с помощью `inverse` с ограничениями по грамматике

Недавно я изучил A Taste of Curry и впоследствии решил протестировать пример простого арифметического синтаксического анализатора, написав несколько более содержательный анализатор: примитивный, но правильный и функциональный анализатор HTML. Я зако…
1 ответ

ActionScript 3: Как работают функции карри?

Я только недавно начал смотреть на код ActionScript (например, я буквально только что узнал, что ActionScript был вчера). Мой единственный опыт связан с Java, поэтому я понятия не имею, как работает этот код: public static function curry(func:Functi…
25 июн '18 в 05:30
0 ответов

Ошибка времени выполнения PHP карри

Я пытаюсь следовать учебнику под названием "Roll Your Own Templating System". Это очень неряшливо, но мне удалось исправить большинство ошибок автора. Я предполагаю, что ошибка исходит от метода generate_markup, который вызывает метод _parse_templat…
14 мар '16 в 00:18
1 ответ

Каков тип этой двойной функции в haskell?

t2 = (\x y z-> x.y.x) GHCI показывает мне это: t2 :: (b1 -> b2) -> (b2 -> b1) -> p -> b1 -> b2 Я не могу понять, как эта сигнатура типа появляется. До сих пор я полагал, что самый правый х в основном является функцией, которая п…
2 ответа

Отсутствует тип параметра для расширенной функции при создании частично примененной функции

Я новичок в Scala и читал о частично примененных функциях в Scala. У меня есть общая функция "обтекание", которая может объединять три строки. def wrap(prefix: String)(html: String)(suffix: String) = prefix + html + suffix Когда я пытаюсь сделать сп…
03 янв '19 в 07:17
5 ответов

Карринг в javascript для функции с n параметрами

Если f:: (a, b) -> c, мы можем определить curry(f), как показано ниже: карри (f):: ((a, b) -> c) -> a -> b -> c const curry = f => a => b => f(a, b); const sum = curry((num1, num2) => num1 + num2); console.log(sum(2)(3)); //5 Как мы реал…
4 ответа

"foop": соглашение об именах? Это вспомогательная рекурсивная функция для "foo"; что означает суффикс "p"?

Я наткнулся на следующий фрагмент кода (определение функции): choose (x:xs) = choosep x xs where choosep x [] = x choosep x (_:_) = x choosep _ (x:xs) = choosep x xs на языке программирования Curry в "стандартной библиотеке" -/usr/lib/curry-0.9.11/S…
1 ответ

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

Недавно я установил Münster Curry Compiler, чтобы заменить гораздо более медленную PAKCS, которую я использовал. Первым делом я хотел проверить, могу ли я использовать некоторые функции сопоставления с образцом из PAKCS, потому что я знаю, что некот…
1 ответ

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

Из раздела 3.13.3 учебника по карри: Остаточные операции называются жесткими, а узкие - гибкими. Все определенные операции являются гибкими, в то время как большинство примитивных операций, таких как арифметические операции, являются жесткими, так к…
12 янв '11 в 00:29
1 ответ

Не включайте функцию ramdajs

У меня есть следующая структура данных: const cluster = { processes: [ { color: 'test', x: 0, y: 0 }, ... ], }; А теперь я хочу сделать функцию со следующими обозначениями: // getProcess :: (Cluster, number) -> Process getProcess(cluster, 0); // …
30 сен '18 в 07:06
1 ответ

Как связать второй параметр в функции scala curry?

//a curry function def find(a: Seq[Int])(sort: (Int, Int) => Boolean) //My attempt val findWithBiggerSort = find(_)((a,b) => a > b) findWithBiggerSort не может работать, произошла ошибка компилятора: scala> def find(a: Seq[Int])(sort: (I…
25 янв '16 в 11:24
1 ответ

PAKCS REPL считает что-то неопределенным, но модуль, определяющий это, загружен

Эта проблема Мой код содержит модуль Tests, который определяет следующее: broken :: SetRBT Int broken = insertRBT 1 $ emptySetRBT (<) Я могу оценить broken в REPL: All> broken RedBlackTree.RedBlackTree (_impl#==#Prelude.Eq#Prelude.Int) (_impl#…
29 ноя '18 в 20:50
4 ответа

Что интереснее или мощнее: карри, ртуть или лямбда-пролог?

Я хотел бы спросить вас о том, какую формальную систему было бы более интересно реализовать с нуля / реверс-инженера. Я просмотрел некоторые существующие и открытые проекты систем логического / декларативного программирования. Я решил придумать что-…
01 июн '10 в 16:11
0 ответов

"readline" (или "haskeline") для карри?

Какой самый практичный способ написать программу на языке программирования Curry, которая бы имела консольный интерфейс с достойным редактированием строк? На самом деле, мне нужно передать строку в качестве предложения для ввода пользователя, затем …
0 ответов

Будет ли весь Хаскелл частью Карри?

Я нашел Карри в Википедии. Это говорит, что Карри - почти суперсет, но не из-за нехватки чего-то. Я бы хотел, чтобы это поддержало весь Хаскелл. Планировали ли они реализовать Haskell как часть Curry?
03 дек '11 в 21:00