next up previous
Next: 1.6 C言語で記述されたLisp処理系 xlisp Up: 1 Lisp言語 Previous: 1.4 Clisp

1.5 Emacs Lisp

プログラムをファイルに保存するためのエディタプログラムとして Emacsは大変強力な機能を多数持っている.そのひとつとして,ユーザがその機能 を拡張しカスタマイズできるというものがあげられる. Emacsは,ホームディレクトリにおかれた.emacsファイルのその拡張機能 を記述しておくとそのファイルの内容を読み込んでから処理がなされるように 作られている..emacsはユーザが機能を拡張したりするために用いる が,その記述にはLisp言語のプログラムとして記述される. Emacs自体がLisp言語で記述されており,Lispプログラ ムをファイル.emacsへ登録しておけばその機能を拡張できることになっている. Emacsを起動すると 最初に現れる*scratch*バッファは Emacs-Lispのインタプリタになっている. つまり,このバッファは lisp-interaction-mode というモードになってる. そこで,このバッファの中で
    (+ (- 1 2) 5)
と入れた後,行末でC-jを打つと
    (+ (- 1 2) 5)
    4
という表示になり,計算結果が表示される. ここでは,変数や四則演算の演算子を前置した式 を書いてC-jをうつと,変数の値や,式の計算結果を 同じような形で表示する. たとえば,円周率を表すpiという変数や三角関数も すでに登録されているので,

    pi
    3.141592653589793

    (sin (/ pi 4))
    0.7071067811865475
というように電卓代わりに利用することもできる. Lispでは,( ではじまり ) で終わる式をS式とよび S式の値を計算することを評価 ( evaluate ) するという. Emacsでは上記の数値計算関数以外にも,リストデータを扱う lisp言語に標準の基本関数や Emacs Lisp特有の関数など何百もある. たとえば,ミニバッファへメッセージを表示するEmacs独特のものとして messageという関数がある.同様に,*scratch*バッファで,
(message "Hello World!")
と書き込んで,行末でC-jを打つと このmessage関数が実行されて, ミニバッファにHello World!と表示され, *scratch*バッファでは,
(message "Hello World!")
"Hello World!"
という表示がなされ,message関数の結果が返る. Emacsでの,lisp-interaction-mode バッファの中では,C-jのほかに Lispの式を評価する方法として以下の二つの方法がある. これらの評価の結果はミニバッファへ出力する.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日