対象
s大学理工学部ics学科g先生の講義で、PrologをMacOSで使いたい方向けの記事です
私の環境
macOS Mojave v10.14
shellはbash
SWI-Prolog version 8.0.2 for x86_64-darwin
知っておくべきこと
| コマンド | 意味 | 
|---|---|
| ls | ファイル・ディレクトリの一覧を表示 | 
| cd | 作業ディレクトリの移動 | 
| pwd | 現在のディレクトリのPATHを表示 | 
| mkdir | 新規ディレクトリの作成 | 
| rm | ファイル・ディレクトリを削除 | 
| touch | 新規ファイルの作成 | 
| open | ファイルを開く | 
| モード | 意味 | 
|---|---|
| ノーマルモード | h,j,k,lでカーソル移動ができる | 
| インサートモード | 入力ができる | 
| キー | 意味 | 
|---|---|
| ノーマルモードの時の i | インサートモードに切替 | 
| インサートモードの時の esc | ノーマルモードに切替 | 
| ノーマルモードの時の :w | 保存 | 
| ノーマルモードの時の :q | 閉じる | 
目次
- SWI-Prologをインストールする
 - PATHを通す
 - 使ってみる
 
1. SWI-Prologをインストールする
1.1. インストール
リンクに飛び、SWI-Prolog 8.0.2-1 for MacOSX 10.12 (Sierra) and later on intel をインストールする。
1.2. アプリケーションの移動
Prolog(フクロウのアイコン)をApplicationフォルダーの中にドラッグ&ドロップで移動させる。
2. PATHを通す
PATHを通すの意味は分からなくても大丈夫。
しかし、この授業やPrologに限らずPATHを通すことはよくあるので調べてみると良い。
まず通したいPATHの確認する(Prologの中にあるMacOSにPATHを通したい)。
2.1. ターミナルを開く
2.2. Prologがあるか確認する
以下のコマンド( you$ から右側)をターミナルに打って、Application下に SWI-Prolog.app があることを確認する。
Your-Macbook-Pro:~ you$ cd /
Your-Macbook-Pro:/ you$ cd Applications/
Your-Macbook-Pro:Applications you$ ls
.
.
FaceTime.app			Reminders.app
Font Book.app			SWI-Prolog.app
GarageBand.app			Safari.app
Google Chrome.app		Siri.app
.
.
.
あった。
2.3. MacOSの場所を探す
以下のコマンドで  SWI-Prolog.app の中の MacOS まで移動する。
Your-MacBook-Pro:Applications you$ cd SWI-Prolog.app/
Your-MacBook-Pro:SWI-Prolog.app you$ ls
Contents
Your-MacBook-Pro:SWI-Prolog.app you$ cd Contents/
Your-MacBook-Pro:Contents you$ ls
Frameworks	MacOS		Resources	pkgconfig	swipl.home
Info.plist	PlugIns		man		swipl
Your-MacBook-Pro:Contents you$ cd MacOS/
Your-MacBook-Pro:MacOS you$
2.4. MacOSのPATHを確認する
MacOSまで行ったら pwd コマンドで現在の場所を確認する。
Your-MacBook-Pro:MacOS you$ pwd
/Applications/SWI-Prolog.app/Contents/MacOS
つまり、 /Applications/SWI-Prolog.app/Contents/MacOS にPATHを通せばいいことがわかった。
続いてPATHを通す。
2.5. shellの設定を開く
shellがbashの人は以下のコマンドでbash_profileの設定画面をvimで開く。
Your-MacBook-Pro:MacOS you$ vi ~/.bash_profile
zshの人は bash_profile を zshrc に置換して以降の操作を行う。
画面が変わり、vimでbash_profileが開けた。
export PATH="~/.xxxxx/shims:/usr/local/bin:$PATH"
export PGDATA=/usr/local/var/xxx
export XXXXX_XXXX="$HOME/.xxx"
.
.
.
こんな感じ。
2.6. 以下の1行を追加する
i を押して、インサートモードにしたのち、
.
.
export PATH=$PATH:/Applications/SWI-Prolog.app/Contents/MacOS
を最終行に追加する。
2.7. vimを閉じる
esc を押してノーマルモードに戻したのち、 :w で保存し、 :q で閉じる。
vimを開く前の画面に元に戻ったらok。
2.8. 以下のコマンドでbash_profileを更新する
Your-MacBook-Pro:MacOS you$ source ~/.bash_profile
2.9. 以下のコマンドで正しくPATHを通せたか確認する
Your-Macbook-Pro: MacOS you$ printenv PATH
/Users/you/.xxxxx/shims:/Users/you/.pyenv/bin:/xxx/.........
..........:/Applications/SWI-Prolog.app/Contents/MacOS
できた。
3. 使ってみる
本記事では /User/you/prolog2019 下に、 sample.pl というファイルを作成する。そのファイルに
male(tom).
を記述し、挙動を確認する。
3.1. /User/you/prolog2019 下に、 sample.pl というファイルを作成する
せっかくなので、
- prolog2019というディレクトリを作成する
 - その中にsample.plというファイルを作成する
 - sample.plを開く
の3つを、コマンドを駆使してターミナルだけでやってみる。 
Your-MacBook-Pro:Hoge you$ cd ~
Your-MacBook-Pro:~ you$
これで User/you に移動。その下に prolog2019 というディレクトリを作りたい。
Your-MacBook-Pro:~ you$ mkdir prolog2019
Your-MacBook-Pro:~ you$ ls
Applications	Downloads	Music		Desktop		Library
Pictures	    prolog2019	Documents	Movies
できた。続いて、 prolog2019 に移動。
Your-MacBook-Pro:~ you$ cd prolog2019/
Your-MacBook-Pro:prolog2019 you$
移動した。ここに、 sample.pl というファイルを作成したい。
Your-MacBook-Pro:prolog2019 you$ touch sample.pl
Your-MacBook-Pro:prolog2019 you$ ls
sample.pl
できた。
3.2. コードを書く
コードを書くためにsample.plを開きたい。
Your-MacBook-Pro:prolog2019 you$ open sample.pl
開いた。そこに、
male(tom).
を記述。保存を忘れずに。
※今回はopenで開けたがbash_profileと同様にvimでも開ける
 その場合はopenの代わりにvi(またはvim)を使用する
3.3. コンソールで実行し、クエリを投げてみる
ターミナルに戻り、 $ swipl -f ファイル名 でsample.plを実行する。
(現在の作業ディレクトリが prolog2019 であることを確認)
Your-MacBook-Pro: prolog2019 you$ swipl -f sample.pl
Welcome to SWI-Prolog (threaded, 64 bits, version 8.0.2)
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software.
Please run ?- license. for legal details.
For online help and background, visit http://www.swi-prolog.org
For built-in help, use ?- help(Topic). or ?- apropos(Word).
?- 
?-  にクエリを叩く。
?- male(tom).
true.
?- male(Who).
Who = tom.
?- 
できた。
3.4. コンソールを閉じる
終わりたいときは halt. で退出できる。
?- halt.
Your-Macbook-Pro:prolog2019 you$
無事 prolog2019 に戻った。
最後に
文末の . (ピリオド)を忘れずに。
完全に余談
プログラミングは楽しくておもしろいです。
ぜひ授業のCやjavaで「自分は向いてない」と意気消沈せずに、
エンジニアとして活躍されている社会人にお話を聞いたり、他の言語を学んでみてください。
きっと人生が変わるでしょう。
ics学科の先輩より