0

多くの事実を記述し、可能性ツリーを作成できることを理解しています-これを行うことは可能ですか:

ルールが true を返すか false を返すかに応じて、リストに値を追加したいですか?

これを説明できる小さなコードを教えてください。

感謝

4

1 に答える 1

2

すべての人間のリストを生成したいとします。次のコードで実行できます。

% facts  
human(victor).
human(peroni).
human(hugo).

% rule
mortal(X) :-
        human(X).

% add X to a list only if rule mortal(X) is true.
add(X,L,[X|L]) :-
        mortal(X).

? add( victor, [hugo], Result).
Result = [victor, hugo].

? add( peroni, [], Result).
Result = [peroni].
于 2012-07-21T00:30:28.243 に答える