2

私はプロローグでのプログラミングの初心者です。

標準の yes または no の代わりに true / false を返すように、プロローグ プログラムによって返される値を変更したいと考えています。

非常に単純な例を考えてみましょう: 例 simple.P

node(1).

isNode(X) : node(X)

プロローグのコマンド ラインで isNode(1) と入力すると、次のように yes が返されます。

isNode(1).

yes

私の質問は:

これを yes から true に変更するにはどうすればよいですか?

4

1 に答える 1

1

Prolog は、クエリの証明を見つけようとします。クエリに変数がある場合、それらを真にする値が出力されます。

Q:偶数である素数はありますか? A: はい - 2 は偶数で素数です

入力している限り、より多くの証明を提供し続けます。最終的には不足し、false を返します。

Q:偶数である素数はありますか? A: はい - 2 は偶数で素数です。 Q: 他にもありますか? A: 嘘です。

あなたが望むのは、プログラムが出力を実行することです。これを行うための多くのライブラリ述語があります。最も柔軟なのは format/2 です

myprogram :-
   my_old_program, !,
   format('yup, that sure is right!~n', []).
myprogram :-
   format('nope, nope, no way in heck!~n', []).
于 2013-03-04T01:40:30.677 に答える