プロローグは私に「いいえ」と言い続けます.... :(
私はプロローグに非常に慣れていません。基本的な質問があります。
そこで、次のように、直角三角形の辺の長さが 3 つの数値で構成されているかどうかを確認する単純なルールを作成しようとしています。
addup(X,Y,Z) :- X is Y+Z. /* this works*/
pythag(H,A,B) :- (H*H) is (A*A) + (B*B). /*this doesn't work*/
テストでは、「addup」ルールは機能しているように見えます....次のテストがこれを示しているように見えるため、プログラムの「IS」の左側に問題があると思います。
インタラクティブ モードでは、2 が 1 と 1 の合計であるかのように表示でき、「はい」と表示されます。
| ?- 2 is 1+1.
yes
しかし、左右を入れ替えると、それはノーと言います:
| ?- 1+1 is 2.
no
誰かが上記の pythag ルールの正しいバージョンを提供できますか? バージョン情報は次のとおりです。
GNU Prolog 1.3.0
By Daniel Diaz
Copyright (C) 1999-2007 Daniel Diaz
| ?-