備忘録

備忘録というなのポエム

Prolog メモ

Prologを始めたので、備忘録として。

・参考 「Prologプログラミング W.F Clocksin/C.S. Mellish 著 中村克彦 訳」

※学習しながら更新しているので、所々クエスチョンマークが付いています。

 

更新履歴

2014/12/8 ページ作成;

 

0.用語

・事実(fact)

・関係(relation)

・質問(question):?と-が付属する。

・引数(argument):各事実中の丸括弧で囲まれた事物

・述語(predicate):関係(relation)の名称

・データベース(database):事実(fact)の集まり

・適合(match):複数の事実の述語が同一で、対応する引数が同一であるとき、適合するという。

・ 目標(goal)

・連言(conjunction):かつ(and)

・後戻り(backtracking):探索を戻って行うこと。再充足(マーク位置から探索をすること)を繰り返すこと。

・規則(rule):十分条件(A←B)。頭部(head)と本体(body)から構成される。

記述方法は head :- body. (= head, if body.)

・節(clause):ある述語に対して組み合わされる事実(fact)と規則(rule)のこと。

 ・コメント:/* */

1.保存形式

.pl または.swlで保存する。(.swlだとconsult()で読み込まれない?)

.plは最近ではPerl拡張子として捉えられがちなので、.swlが無難?

 

2.処理系

swi-prologを使用。

インストールはAURから

yaourt -S swi-prolog

 

3.起動

端末から

swipl

忘れそうなので、エイリアスを設定しておく。

alias prolog='swipl'

 

4.ファイルの読み込み

consult(hoge).

または、略記法として

 [hoge].

 

5.本と違う所(swi-prologでの相違?)

5.1 ;をタイプした時の挙動(代入を例に)

本では最後の探索時にも;を入力できるとしているが、swi-prologでは最後のfactに辿り着くと自動的に代入される。