by shigemk2

当面は技術的なことしか書かない

リスト遊び 1-1

Emacs Lispは、Emacs上で動くインタプリタ言語(コンパイル不要の言語)である。

Emacsの一番下の行は、ミニバッファと呼ばれ、
Lispの式を入力し評価することができる。

M-:

を実行すると、

Eval:

という感じのミニバッファが出現し、

Eval: (+ 1 2)

と打つと、

3

という結果が出力される。

バッファ
Emacsにおける編集などの作業に使用する空間の単位のこと。

バッファローカル変数(buffer local variable)
バッファごとの環境を実現するために、そのバッファのみで有効である変数のこと。

Eval: buffer-file-name

そのバッファがどのファイルに対応しているかが格納されているバッファローカル変数

buffer-file-nameとイチイチ入力するのはかったるいので、
1. 大域変数(global variable)にバッファローカル変数を代入する

Eval: (setq bfn buffer-file-name)

<?php
$bfn = $buffer-file-name;

みたいなもんっす。

2. M-Tabを利用して、変数名、関数名を補完する。


追記: setq
setqはエイリアスで、

Eval: (set 'bfn buffer-file-name)

と同じで第一引数を評価せずにset関数に渡している。
setqはスペシャルフォームである。
シングルクォートがつくと、その変数は評価されない。

Eval: (関数 引数 引数)

基本的にLispは、引数を評価してから評価されたものを関数に渡している。