2

私は独学で Prolog を学んでおり、いくつかの例が与えられています。

そのうちの 1 つはdynamic/1組み込みディレクティブを使用します。

:- dynamic(items/1).

ダイナミクスの考え方が分かります。それは、アサートを介して述語を変更し、述語を撤回できます。

ただし、プログラムは次の場所も使用します。

:- dynamic(location/2).

2 つの /1 と /2 の違いは何ですか。また /3 .... /n ですか?

4

1 に答える 1

2

Prolog では、述語は名前 (またはファンクター)引数の数 (またはアリティ) によって識別されます。したがって、items/1は functor と arity を持つ述語を示し、 は functoritemsと arity1を持つ述語をlocation/2示しlocationます2。ファンクタが同じでアリティが異なる 2 つの述語は、異なる述語です。

于 2014-04-22T17:48:36.223 に答える