Debian GNU/LInuxでPrologを始める
SWI-Prologのインストール DebianではGNU Prologを使う選択肢もあるが、ここではSWI-Prologを使うので、swi-prologまたはswi-prolog-xというdebパッケージをインストールする。後者はGUIアプリケーションを開発するためのXPCEというツールキットが含まれているパッケージ。 $ su # apt update # apt install swi-prolog # exit SWI-Prologの起動 インストールが無事に完了したらPrologを起ち上げる。swiplかprologと打ち込んでエンターキーを押せば起動する。 $ swipl $ prolog いろいろなメッセージが表示された後、次のようなプロンプトが表示される。 ?- まずはお決まりのHello World!を表示。 ?- format('Hello World!'). Hello World! true. ?- 次に四則演算。 ?- is(A, 5+7). A = 12. ?- is(S, 5-7). S = -2. ?- is(M, 5*7). M = 35. ?- is(D, 5/7). D = 0.7142857142857143. ?- A, S, M, Dはいずれも変数。変数名の先頭は大文字か_である必要がある。isは引数を2つ取る組み込み述語。is/2というふうに書かれる。/2は引数を2つ取ることを意味する。is/2は英語でunificationを意味するらしい。式の最後にはピリオドが必要。また、同じことを表すのに次のように記述してもいい。isの左辺が変数の場合、isは中置演算子(infix operator)としての役割を持っているようだ。 ?- A is 5 + 7. A = 12. ?- S is 5 - 7. S = -2. ?- M is 5 * 7. M = 35. ?- D is 5 / 7. D = 0.7142857142857143. ?- ついでに2の平方根と半径3の円の面積も計算。累乗には^が使えることに感動。 ?- is(Root, sqrt(2)). Root = 1.4142135623730951. ?- is(CircleArea, 3^2 * pi). CircleAre...