前回EmacsでLispも物にするぞ、と気合を入れたら、急にLispというワードが、目に飛び込むようになってきました。意識しすぎて、LispじゃなくてDispでも飛び込んでくるし、Lionとかもう動物なんですけど、Lispに見えます。こんな所にいるはずがないのに探してしまう。これは、もう恋ですね。
 そして、Emacs GUIのずっと背景だと思っていた場所に、Lisp-Interactionというツールが現れました。こんな場所にこんなものあったでしょうか。
 4行目のEvaluate and Printに着目。これはきっと、Lispプログラムを書いたら、実行してプリントしてくれるやつです。
 さっそく、持てる知識でLispプログラミングしてみます。足し算プログラムです。
 Lispプログラムを書いたら、さきほどのメニューの4行目を実行。
 やはり! 足し算の結果である15がプリントされました。
 もうゴキゲンです。
 続けて掛け算プログラミングします。今度はショートカットーキー、C-j (Ctrl + j)を使って実行します。
 さくっと答えが出ました。
 Lispの楽しいところは、前に式を書くところですね。一回だけ書けばいいので、3値以上の計算がすごく楽です。
では、前回みつけた、上下逆にするLispプログラムを引っ張ってきます。まだ不慣れなので記憶しているパスのsort.el.gzからソースを表示。
 (後で、C-h aで、reverse-regionのヘルプを表示してからsort.elをクリックする方がソース表示が早いことに気づきました)
C-s reverse-region (Ctrl + s、reverse-region、Ctrl + sの繰り返しで再検索)で、reverse-regionの定義場所を検索します。
 見つかったら、関数を丸ごと選択して、
 M-w (Alt + w)で、コピー、元のバッファへフォーカスを移動してから、C-y (Ctrl + y)でペースとします。
 ちなみにEmacsではC-y はヤンクと呼びますが、Vimではヤンクは記憶のことで、Windowsではコピーが記憶のことで、ってごちゃごちゃになるので、呼び方はWindows風にそろえています。
 ソースを貼り付けたら、reverse-regionという関数はすでにあるので、関数名を変えておきます。tacという関数にしました。
 そして、関数の最後にカーソルを移動させて、C-j (Ctrl + j)。
 tacと表示されたので、関数定義できたと思います。
 では、上下反転実験するための、適当なテキストを作ります。
 一部分を選択して、M-x (Alt + x、tac)を実行。
 上限反転しました。

コメント