次のように書いた加算ルールによる乗算のエラーArguments are not sufficiently instantiated
が続きます。エラーメッセージ "引数が十分にインスタンス化されていません"が理解できない理由を理解できません
mult(_, 0, 0). %base case for multiplying by 0
mult(X, 1, X). % another base case
mult(X, Y, Z) :-
Y > 1,
Y1 is Y - 1,
mult(X, Y1, Z1),
Z is X + Z1.
私はプロローグには新しく、このような単純な問題でも本当に苦労しています。
書籍やオンラインチュートリアルのおすすめは素晴らしいです。
私はUbuntu LinuxのSWI-Prolog上で実行しています。
私はコンパイルできません私は単にファイルをプロローグ[PA3]にロードしようとします。このエラーが発生します。これは奇妙だと思います –
ファイルの名前を小文字に変更してみてください。 Prologが 'PA3'を見ると、それを変数と解釈するため、エラーが発生します。もう一つの選択肢は、引用符を使うことです: '['PA3']'それはうまくいくかもしれません。それ以外に、あなたのプログラムは100%罰金です! (ここでテストしても、全く問題はありません) – mgibsonbr
hahahaありがとうございました。私はほとんど夢中になりました。 –