ゴール(goal)
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

IF/Prologは、ゴ−ルを満たそうとします。ゴ−ルは以下のようなものです。

-単純な述語の呼び出し

    ?- Goal.

-コンマ','(論理積AND)、あるいはセミコロン';'(論理和OR)によって結合 された任意個の述語

    ?- Goal1 , Goal2 , (Goal3 ; Goal4).

-以下のように変数に上記のような値を与えると

    ?- X =.. [';', Goal1(arga), Goal2(argb,argc)], X.

 'X'を呼び出すと以下が呼び出されます。

    ?- Goal1(arga) ; Goal2(argb,argc).

以下の規則を与えます。

herbivore(Person) :- eats(Person, fruit). herbivore(Person) :- eats(Person, vegetable). carnivore(Person) :- eats(Person, meat).

Loriが菜食主義者かどうかを調べるために次のゴ−ルが呼び出されます。

   ?- herbivore('Lori'), not carnivore('Lori').

このゴ−ルを解くためには、','の両側がtrueでなければなりません。 最初に以下のサブゴ−ルのうちのいずれかがtrueでなければなりません。

eats('Lori', fruit) eats('Lori', vegetables)

そして次のサブゴ−ルは必ず失敗します。

eats('Lori', meat)

よってその親ゴ−ル "not carnivore('Lori')"は、真(true)と証明されます。


Up read on...