Подтвердить что ты не робот

Краткое пояснение Core.logic

Я хочу использовать Clojure Core.logic. Однако я хочу также понять, как это работает. Есть ли какое-то краткое объяснение? (Как реализация метациркулярного оценщика?)

Спасибо!

4b9b3361

Ответ 1

core.logic - это реализация miniKanren - изначально написанная и спроектированная на Схеме Дэн Фридман, Уильям Берд, Олег Киселев и другие. Это попытка встроить реляционное программирование в стиле Prolog в Lisp.

Если вы хотите понять, как это работает, вам нужно прочитать первые три главы диссертации Уильяма Берда: https://scholarworks.iu.edu/dspace/bitstream/handle/2022/8777/Byrd_indiana_0093A_10344.pdf?sequence=1

Рассматриваемый Schemer также подробно описывает унификатор. Однако гораздо более тонкая цель miniKanren не получает всестороннего лечения - вам нужно посмотреть на диссертацию Byrd для этого.

Даже тогда, как и в случае с мета-циркулярными переводчиками, многие идеи не могут быть получены без попытки реализовать систему самостоятельно на разных языках программирования.