次のような事実が与えられた場合:
- ジェイクはニックより賢い
- ニックはウェスより賢い
- ウェスはディックより賢い
Jake の方が Dik よりも賢いかどうかを判断する再帰的なプログラムを作成してください。
私が持っている解決策は次のとおりです。
smarter(jake, nik).
smarter(nik, wes).
smarter(wes, dik).
smarter(X, Y) :-
smarter(X, Z),
smarter(Z, Y).
出力:
?- smarter(jake, dik).
True
しかし、私がそれを交換すると:
?- smarter(dik, jake)
出力に「ERROR: Out of local stack」と表示されます。出力に「False」と表示する必要があります。どうすれば修正できますか?
ありがとう