【Emacs】EmacsLisp 超基礎

RubyEmacsで開発されている方も結構いるのではないでしょうか。
わたしもRinari超便利だよー(*´ω`*)っていう記事を読んで興味を持ったので、
久々にEmacs触っています。
で、動かすためにEmacsLispをネットからコピペして使ったりするのですが、、、
はて、、、、。EmacsLispって何(?ω?)
ってなりました。。

Lispはカッコを多用する特殊な文法ですが、
基本文法をわかったらだいぶ読めるようになったので、
これだけ覚えとけばおk!ってまとめてみます!(`・ω・´) 

=======

EmacsでEmacsLispを評価するには:

(カーソルを行末に持って行って)
C-x C-e

リストを作るには:

(先頭に「'」を付けたカッコを用意する)
'(foo bar baz)
=>(foo bar baz)

関数の記述法

(func var1 var2 var3 ...)

例えば、リストのサイズを求めるlengthを使うと、、

(length '(foo bar baz))
=>3

setq:変数設定関数

(setq 変数名 代入する値)
(setq myvar '(aaa))

car:リストの先頭の値を返却する(元のリストは非破壊)

(car リスト)
(car '(a b c))
=>a

(car '(a b c)
       '(e f g))
=>(a b c)

cdr: リストの先頭の以外の残りの値を返却する(元のリストは非破壊)

(cdr リスト)
(cdr '(a b c))
=>(b c)

cons: リストの結合

(cons 変数1 変数2)※引数は2つしか取れない
(cons a '(b c))
=>a b c

例えばこんな処理を書くと、「(3 2 1)」が返却されます。

(setq len
(length '(a b c)
            '(foo bar baz)
            '(fuwa fuwa ruby)
))
(cons len '(2 1))
=>(3 2 1)

・文法エラーなどが起きると「Backtrace」バッファが表示される
→「Backtrace」バッファを消すには、「q」を押下する。

==
参考URL:emacsとRinariで快適Rails開発!
http://d.hatena.ne.jp/willnet/20090110/1231595231