Emacsに出会って、もう19年。今日はじめて、Emacsに、calcという電卓機能があることに気がつきました[E:coldsweats01]
そもそもは、Toolsメニューに、Programmable Calculatorというのがあることに気がついた、ってことだったんですが、X clientじゃないころからEmacsを使ってるので、ツールバーなんて普通は使わないですよね。
M-x calc
で実行できるようです。
さて、このEmacs Calculator、10秒ほどいじくってて、ピン!ときました。
たとえば
2 Enter 3 Enter 4 Enter + *
とキーを押すと
14
と表示される。
逆ポーランド記法(RPN)じゃないですか、これは。
一部に強烈な愛好家がいるといわれる、HPの電卓で使われていたRPN。
2 3 4 + *
という並びになってますが、小学校の算数で習った書き方だと、
2 * ( 3 + 4 )
です。
それにしてもEmacsに電卓機能が備わってたなんて、ぜんぜん知りませんでした。
Emacsでちょっと計算をしたいときは、*scratch*バッファのLisp Interactionモードにて、
(* 2 (+ 3 4)) Ctrl+J
とかやってました [E:happy01] マジな話
RPNは、オペランドの後に演算子がくるので、後置記法。
それに対して、Lispは、オペランドの前に演算子がくるので、前置記法。
似てるような似てないような・・・、そんな関係にあります。
☆
infoに、The GNU Emacs Calculatorと、立派なドキュメントが用意されています。
ひまなときに、試してみようかな、という気になりました。
Emacsといえば、「ハノイの塔」とか・・・
Ctrl+U 数字 M-x hanoi
ほかにも、人工無能・・・いや心理療法士?
M-x doctor
なんていう、まったく役に立たないお遊び機能ばかりだと思ってたので、こんなRPN電卓みたいな実用性のあるものがあるなんて、想像もしてなかった[E:coldsweats01]
ちなみに、はじめて使った電卓は、ポケコンのPC-1245でして、数式をそのまま入力できるものでした。そのため、RPNは正直いって苦手、使えません。
☆
どうでもいいネタ
ghostscriptで計算してみよう!
gsコマンドを実行し
2 3 4 mul add = Enter
で、
14
とでるヨ!
もちろん、 2 3 4 * + の計算のこと。
Ghostscriptは、ページ記述言語であるPostScriptのクローンですが、PostScriptはスタックを用いたプログラミング言語です。これ、言語としての基本的なところは、ごく一部で有名だったプログラミング言語「Forth」とほとんど一緒。
この手の言語って、構文解析器がとっても単純になるので、処理系が作りやすいんですよね。
0 件のコメント:
コメントを投稿