2009年8月11日火曜日

Emacs Calculator ~ Emacsの電卓

Emacsに出会って、もう19年。今日はじめて、Emacsに、calcという電卓機能があることに気がつきました[E:coldsweats01]



そもそもは、Toolsメニューに、Programmable Calculatorというのがあることに気がついた、ってことだったんですが、X clientじゃないころからEmacsを使ってるので、ツールバーなんて普通は使わないですよね。



M-x calc



で実行できるようです。



200908101



さて、このEmacs Calculator、10秒ほどいじくってて、ピン!ときました。



たとえば



2 Enter 3 Enter 4 Enter + *



とキーを押すと



14



と表示される。



200908102



逆ポーランド記法(RPN)じゃないですか、これは。



一部に強烈な愛好家がいるといわれる、HPの電卓で使われていたRPN。



2 3 4 + *



という並びになってますが、小学校の算数で習った書き方だと、



2 * ( 3 + 4 )



です。



それにしてもEmacsに電卓機能が備わってたなんて、ぜんぜん知りませんでした。



Emacsでちょっと計算をしたいときは、*scratch*バッファのLisp Interactionモードにて、



(* 2 (+ 3 4)) Ctrl+J



とかやってました [E:happy01] マジな話



200908107



RPNは、オペランドの後に演算子がくるので、後置記法。



それに対して、Lispは、オペランドの前に演算子がくるので、前置記法。



似てるような似てないような・・・、そんな関係にあります。





infoに、The GNU Emacs Calculatorと、立派なドキュメントが用意されています。



200908103



ひまなときに、試してみようかな、という気になりました。



Emacsといえば、「ハノイの塔」とか・・・



Ctrl+U 数字 M-x hanoi





200908105



ほかにも、人工無能・・・いや心理療法士?



M-x doctor



200908106



なんていう、まったく役に立たないお遊び機能ばかりだと思ってたので、こんなRPN電卓みたいな実用性のあるものがあるなんて、想像もしてなかった[E:coldsweats01]



ちなみに、はじめて使った電卓は、ポケコンのPC-1245でして、数式をそのまま入力できるものでした。そのため、RPNは正直いって苦手、使えません。





どうでもいいネタ



ghostscriptで計算してみよう!



200908104



gsコマンドを実行し



2 3 4 mul add = Enter



で、



14



とでるヨ!



もちろん、 2 3 4 * + の計算のこと。



Ghostscriptは、ページ記述言語であるPostScriptのクローンですが、PostScriptはスタックを用いたプログラミング言語です。これ、言語としての基本的なところは、ごく一部で有名だったプログラミング言語「Forth」とほとんど一緒。



この手の言語って、構文解析器がとっても単純になるので、処理系が作りやすいんですよね。





0 件のコメント:

コメントを投稿