Существуют ли хорошие языки логического программирования, отличные от Prolog или основанные на Prolog?
У кого есть или положительный опыт?
Существуют ли хорошие языки логического программирования, отличные от Prolog или основанные на Prolog?
У кого есть или положительный опыт?
Я настоятельно рекомендую The Reasoned Schemer Дэна Фридмана, Олега Киселева и Уилл Берд. Он представляет miniKanren, небольшой (три основных оператора) язык логического программирования, построенный поверх Scheme. Его приятно использовать, особенно с макросом matche
, который позволяет унифицировать шаблон совпадает.
Программирование наборов ответов — чрезвычайно мощная парадигма логического программирования. Я добился большого успеха с помощью решателя наборов ответов clasp/clingo. а>.
Я познакомился с DLV и моделями через программирование наборов ответов, которое в основном представляет собой логическое программирование.
Взгляните на помощники по доказательству теорем, такие как Coq, HOL и Изабель а>.
Некоторые системы типов (например, в Agda2) также можно рассматривать как логическое программирование.
Вы можете проверить CLIPS. Он структурирован как Lisp (много скобок), но предназначен для создания экспертных систем; Я не видел проблемы, которую мог бы решить Prolog, которую не смог бы решить CLIPS. Как и Пролог, он основан на построении фактов и последующем выполнении запросов к ним.
Существует также довольно быстрая реализация miniKanren, написанная на Clojure, которая называется core.logic.
Есть также несколько руководств по его использованию:
https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer
https://github.com/frenchy64/Logic-Starter/wiki
http://objectcommando.com/blog/2011/11/04/the-magical-island-of-kanren-core-logic-intro-part-1/
http://clojure.com/blog/2011/12/08/lojic-part-two.html
На ум приходят Меркьюри и Оз. Существует также Datalog, который является ограниченной (не полной по Тьюрингу) версией Prolog.