対象
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学科の先輩より