Пригодность для проблем пролога
Чтобы начать работать с core.logic, я решил проработать "Девяносто девять проблем Пролога"...
https://github.com/rodnaph/99-core-logic-problems
Но после всего лишь нескольких проблем, из моего нынешнего понимания, не кажется, что core.logic является правильным способом решения этих проблем (поскольку они требуют только одного ответа).
Я мог бы неправильно понять реляционный подход, но я лаю не на том дереве? Должен ли я просто использовать Пролог?
Приветствия.
1 ответ
Первоначальные проблемы для Пролога, а в Прологе реляционный подход - единственный, который у вас есть. Большинство из этих проблем на самом деле являются замаскированным функциональным программированием и не используют возврат к исходному состоянию, поэтому в Clojure использовать его было бы нелогично. core.logic
для них.
Тем не менее, одна из полезных вещей Prolog - то, что вы часто можете запускать их задом наперед (в основном простые), чтобы генерировать все возможные решения. Например, вы можете найти все способы разбить список на две части, запустив append
в обратном направлении.