インストール手順
Debian/busterで検証
$ sudo apt-get install swi-prolog
$ prolog --version
SWI-Prolog version 8.0.2 for x86_64-linux
Emacsで対話環境起動
- Emacsを立ち上げた状態で「M-x run-prolog」とやると対話環境が立ち上がる
- prologは「?-」がプロンプトらしい
サンプルプログラム
?- write(hello).
hello
true.
?- X is 2+2.
X = 4.
EmacsでPrologを書く(設定)
Debianの場合、すでにprolog-modeは入っていると思われるので、以下のようにediprologを設定してみる
- ~/.emacs
;; prolog
(load "~/.emacs.d/prolog")
- ~/.emacs.d/prolog.el
- https://www.metalevel.at/ediprolog/ を参考にしている
(autoload 'run-prolog "prolog" "Start a Prolog sub-process." t)
(autoload 'prolog-mode "prolog" "Major mode for editing Prolog programs." t)
(autoload 'mercury-mode "prolog" "Major mode for editing Mercury programs." t)
(setq prolog-system 'swi)
(setq auto-mode-alist (append '(("\\.pl$" . prolog-mode)
("\\.m$" . mercury-mode))
auto-mode-alist))
(unless (package-installed-p 'ediprolog)
(package-refresh-contents) (package-install 'ediprolog))
(require 'ediprolog)
(setq ediprolog-system 'swi)
(global-set-key "\C-c\C-e" 'ediprolog-dwim)
EmacsでPrologを書く
最後に簡単なPrologのプログラムを書いて、ediprologを実行してみる
% member(X,List): XはリストLの要素である
member(X, [X|_]).
member(X, [_|L]) :- member(X, L).
?- member(a,[a,b,c]). <-- 「.」まで打ったら「C-c C-e」と打ち込むと下に結果が出る
%@ true