findall(+テンプレート,+ゴール,-解答リスト)
「解答リスト」は、ゴールである「ゴール」を満たす「テンプレート」のすべての代入値のリストです。
「テンプレート」は、「ゴール」のどこかに現れていなければなりません。IF/Prologは、「ゴール」を満たすすべての解を探し出し、「解答リスト」にすべての「テンプレート」の解を返します。
たとえば、デ−タベ−スが以下の場合
'White' reports_to 'Jones'. 'McDonald' reports_to 'Jones'. 'Newman' reports_to 'Smith'. 'Nixon' reports_to 'Smith'.
以下のような結果になります。
?- findall(X, X reports_to Y, L).
X = _636 Y = _640 L = ['White','McDonald','Newman','Nixon'] yes ?- _
undefined_predicate 「ゴール」がデ−タベ−スで定義されていない illegal_predicate 「ゴール」が正しい値を与えられていない
| scroll to top |
|