2

core.logic を使い始める方法として、「99 の Prolog Problems」に取り組むことにしました ...

https://github.com/rodnaph/99-core-logic-problems

しかし、いくつかの問題が発生しただけで、私の現在の理解では、core.logic がこれらの問題を解決する正しい方法ではないように感じられます (1 つの答えしか必要としないため)。

リレーショナル アプローチを誤解している可能性がありますが、間違ったツリーを鳴らしていますか? Prolog だけを使用する必要がありますか?

乾杯。

4

1 に答える 1

2

元々の問題はPrologにあり、Prologではリレーショナルアプローチだけがあなたが持っているものです。これらの問題のほとんどは、実際には変装した関数型プログラミングであり、バックトラックを使用しないため、Clojureではcore.logicそれらを使用するのは慣用的ではありません。

とは言うものの、Prologの優れた点の1つは、多くの場合、それらを逆方向に実行して(ほとんどは単純なもの)、考えられるすべてのソリューションを生成できることです。たとえば、append逆方向に実行することで、リストを2つの部分に分割するすべての方法を見つけることができます。

于 2013-02-10T20:26:35.860 に答える