Описание тега functional-logic-progr

Функционально-логическое программирование (или кратко ФЛП) - это составная парадигма, объединяющая парадигмы функционального программирования и логического программирования.
3 ответа

Обсуждение программирования на основе абдуктивной логики и программирования набора ответов

Я хочу уточнить некоторые моменты, касающиеся программирования с использованием абдуктивной логики и программирования набора ответов. Я с одноклассниками создаю игру. В этой игре есть "герои" (особые нпс). У героев есть цели и поведение. (Все это ос…
1 ответ

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

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

Компактное или полное / подробное определение обратного комбинатора / оператора в карри

Довольно захватывающая вводная статья 2013 года о реализации Curry KiCS2 на Haskell, написанная Вольфгангом Йельчем, "Вкус Curry", дает следующее определение для inverse комбинатор: inverse :: (a -> b) -> (b -> a) inverse f y | f x =:= y = …
2 ответа

Как мне спроектировать мультиплексор 2-1 с включением, используя только вентили NAND?

Итак, мне удается что-то спроектировать, но мне нужно подтверждение, и мой настоящий вопрос заключается в следующем: Как я могу спроектировать мультиплексор 4-1, используя 2 мультиплексора, спроектированных как в названии вопроса (используя только N…
1 ответ

Требуется разъяснение в понимании пользовательского ограничения core.logic

Я пытался понять обычай core.logic ограничение, как определено ниже, (defne lefto "x appears to the left of y in collection l." [x y l] ([_ _ [x . tail]] (membero y tail)) ([_ _ [_ . tail]] (lefto x y tail))) Как интерпретировать _ а также . в конте…
1 ответ

Haskell: объединение экзистенциальных и универсальных квантификаторов неожиданно не удается

Я пытаюсь смоделировать следующее логическое следствие в Haskell с GHC версии 8.6.5: (∀ a. ¬ Φ (a)) → ¬ (∃ a: Φ (a)) Я использовал следующие определения: {-# LANGUAGE RankNTypes, GADTs #-} import Data.Void -- Existential quantification via GADT data…
0 ответов

Найдите количество успехов из списка условий / целей

Я написал следующий предикат exactly/2 это будет успешным, если точно N номеров в списке L равны 1: :- pred exactly(int, list(int)). :- mode exactly(in, in) is semidet. :- mode exactly(out, in) is det. exactly(N, L) :- length(filter(pred(X::in) is s…
1 ответ

If & Else & Pattern Matching в SML все вместе?

Я пытался скомпилировать этот фрагмент кода в течение 3 часов, и ничего не улучшилось. Я знаю, что мой тип данных компилируется без проблем, а также первый случай сопоставления с образцом. Но когда приходит второй случай (узел с двумя узлами для дет…
2 ответа

Инвертирование члена в Curry (PAKCS) не дает ответов

С этим определением: member _ [] = False member x (h:t) = if x == h then True else member x t PAKCS 2.0.1 (из Ubuntu 18.04) не дает ответов, предупреждений или ошибок: Top-level binding with no type signature: member :: Prelude.Eq a => a -> [a…
0 ответов

Можно ли вставить оператор Clojure в середину серии вызовов core.logic «а-ля Prolog»?

Пролог смешивает логические (ошибочные) цели и (безошибочные) процессы, такие как write/2или же assert/1. Можно ли сделать это с помощью core.logic Clojure? Например: (pldb/with-db myFacts (l/run* [x y] (person x) (println "we found a person!") (lik…