Next: 1.6 C言語で記述されたLisp処理系 xlisp
Up: 1 Lisp言語
Previous: 1.4 Clisp
プログラムをファイルに保存するためのエディタプログラムとして
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の式を評価する方法として以下の二つの方法がある.
これらの評価の結果はミニバッファへ出力する.
- C-x C-e (Ctrlキーを押しながらxを打ちその後,Ctrlキーを押しながらe
を打つ.)
カーソルのある場所から左の最初の式を評価する.
たとえば,
(* (+ 1 2) 5)
で,数値1と2の間にカーソルがある場合には,評価結果は1になり,
2の次の右閉括弧の上にカーソルがある場合には,結果は2になり,
2の次の右閉括弧のすぐ右のスペースの上や数値5の上にカーソルがある場合には,
結果は3になり,5の右の右括弧の右側にカーソルがある場合には,
結果は15となる.
- M-C-x (Esc の後 C-xを打つ.または,ALTキーを押しながらC-xを打つ.)
カーソルのある場所のもっとも外側の式を評価する.
たとえば,
(* (+ 1 2) 5)
の場合には,*の左側括弧から5の右側の
右括弧の後ろのどこにあっても評価結果として15となる.
generated through LaTeX2HTML. M.Inaba 平成18年5月7日