LoginSignup
2
1

More than 1 year has passed since last update.

PrologをEmacsで書いてみる

Posted at

インストール手順

Debian/busterで検証

$ sudo apt-get install swi-prolog
$ prolog --version
SWI-Prolog version 8.0.2 for x86_64-linux

Emacsで対話環境起動

参考: Prologue: Prologを動かすには

  • Emacsを立ち上げた状態で「M-x run-prolog」とやると対話環境が立ち上がる
  • prologは「?-」がプロンプトらしい

サンプルプログラム

?- write(hello).
hello
true.

?- X is 2+2.
X = 4.

以下の画像のようになる
image.png

EmacsでPrologを書く(設定)

Debianの場合、すでにprolog-modeは入っていると思われるので、以下のようにediprologを設定してみる

  • ~/.emacs
;; prolog
(load "~/.emacs.d/prolog")
(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 
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1