Непрологическое логическое программирование - PullRequest
10 голосов
/ 27 мая 2011

Существуют ли хорошие языки логики программирования, не основанные на Прологе или Прологе?

Кто имеет или имеет хороший опыт с этим?

Ответы [ 7 ]

7 голосов
/ 11 сентября 2011

Программирование набора ответов - чрезвычайно мощная парадигма логического программирования.У меня был большой успех с решателем ответов clasp / clingo .

7 голосов
/ 28 мая 2011

Я очень рекомендую Разумный интриган от Дана Фридмана, Олега Киселева и Уилла Берда .Он представляет miniKanren, небольшой (три основных оператора) язык логического программирования, построенный поверх Scheme.Его очень приятно использовать, особенно с макросом matche, который позволяет объединять сопоставления с образцами.

4 голосов
/ 25 июня 2011

Я был представлен DLV и моделям через программирование набора ответов, которое в основном является логическим программированием.

3 голосов
/ 16 сентября 2011

Посмотрите на помощников по доказательству теорем, таких как Coq , HOL и Изабель .

Некоторые системы типов (например, в1009 * Agda2 ) также можно рассматривать как логическое программирование.

2 голосов
/ 18 февраля 2012

Существует также довольно быстрая реализация 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

2 голосов
/ 27 мая 2011

Вы можете проверить клипы.Он структурирован как Lisp (много паренов), но предназначен для построения экспертных систем;Я не видел проблемы, которую Prolog решает, а CLIPS - нет.Как и Пролог, он основан на построении фактов и последующем выполнении запросов к ним.

1 голос
/ 16 сентября 2011

Меркурий и Оз приходят на ум.Есть также Datalog, который является ограниченной (полной по Тьюрингу) версией Prolog.

...