これまでいくつかの節をコンサルトし、新しい節を直接追加しました。ここで現在のデータベースを見てみることにしましょう。
(%%英語番では、'White" reports....がその前の5行より先に来ているがこれでOK?。)
?- listing. C1 is_subordinate_to C2 :- C1 reports_to C2.
C1 is_subordinate_to C2 :- C1 reports_to C3, C3 is_subordinate_to C2.
'White' reports_to 'Jones'. 'McDonald' reports_to 'Jones'. 'Hill' reports_to 'Smith'. 'Newman' reports_to 'Smith'. 'Nixon' reports_to 'Smith'. 'Smith' reports_to 'New'. 'Jones' reports_to 'New'. 'Old' reports_to 'Carter'. 'Old' reports_to 'Carter'.
yes ?- _
これでIF/Prologは、現在データベースにあるすべての事実と規則を表示しました。'Old' reports_to 'Carter'という事実を2度データベースに入力したことを思いだして下さい。最初はassertzを、2度目は[user]を使いました。
ひとつの述語のリストのみを見たい場合には、その関数子を指定して下さい。
?- listing(is_subordinate_to). C1 is_subordinate_to C2 :- C1 reports_to C2.
C1 is_subordinate_to C2 :- C1 reports_to C3, C3 is_subordinate_to C2.
yes ?- _
| 冒頭へ |
|