魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

Prolog 電卓

プログラミング言語を電卓替わりに使うというのはよくあることで、ぼくは時代ごとに様々なプログラミング言語を電卓として使ってきた。とくに多倍数整数が可能な言語はいいね。パワーを感じることができる。

古くは Python を使っていた。呼び出してから立ち上がるまでが遅いと使う気にならないが、ぼくが使う言語は大抵立ち上がりが速い。Haskell の時代もあったが一番長かったのは Erlang だ。昨年末は Scheme を使っていたが、今年は Prolog を使っている。
SWI-Prologhttp://www.swi-prolog.org/)だ。

f:id:fxrobot:20140206052813j:plain

Mh+p(無変換キー+ p)で立ち上がるようにしていることもあり、立ち上がりは瞬時だ。Rocket(Scheme 処理系)もたまに使うが、その名前に反し立ち上がりが超遅い。

まぁ、ぼくの場合は、こんな具合にその時代の興味に応じて電卓として使うプログラミング言語も変わってきたが、Prolog が終着点になるかも知れないとこの頃では思っている。あてにはならないけどね。

f:id:fxrobot:20140206060246j:plain

Prolog の場合は上のようなよくある日常的な計算が比較的簡単にできる点がありがたい。上では計算の入力を3行に分けているが、すべて1行でもまったく問題はない。また、大量の計算をおこなう場合、途中経過を X や Y じゃなく _肉、_魚、_酒、_その他、などと変数に日本語を使うこともできる。

大事な計算で経過と結果を残しておきたいならプログラムとして書いておけばよい。

f:id:fxrobot:20140206061727j:plain

上の例では簡単すぎるだろうがこんな要領だ。もちろん、数十行の計算をエディタで書いて Prolog シェルに読み込んでもよい。また、計算の元となる値段表や、係数表などを Prolog データベースとしてあらかじめ持っておいて計算に利用することも有用な方法だろう。

Prolog は使い方によっては、Excel などと同程度以上に日常業務に役立つツールとして使えると思う。これを書いていて気づいたが(今かよっ)、サラリーマン時代に必要だった交通費精算やらスケジュール管理やらなんやら Prolog を使えばかなりおもしろいソリューションが得られるんじゃないだろうか。

Prolog は電卓としてのひやかし的利用からの連続した延長線上にもっと素晴らしい応用世界があるように思えるのだ。かなりおもしろいテーマだと思うが、まぁ、その辺りのことには今後少しずつ取り組んで解明していきたいと思う。