1

プロローグは私に「いいえ」と言い続けます.... :(

私はプロローグに非常に慣れていません。基本的な質問があります。

そこで、次のように、直角三角形の辺の長さが 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
| ?- 
4

1 に答える 1