Emacs Lisp の勉強
Emacs Lispが読めないと何かと歯がゆい思いをすることが多いので、
emacslisp.pdfを読んで学習。
以下はメモ。
(+ 1 2) LFD 3
- Lispでは(+ 1 2)のような、計算の対象となる式をS式(S-Expression)と呼ぶ。
- SはSymbol(記号)の略。
- Emacs Lisp では数や文字列も一つのS 式である。
- 数や文字列はそれ自身へと評価される。
7 ⇒ 7 "Copland" ⇒ "Copland"
?d ⇒ 100
- 真理値も自分自身へと評価される。
- 真はt,偽はnil。
t ⇒ t nil ⇒ nil
- 任意個のS式を空白やタブ、改行などで区切り、()で囲んだものをリスト(list)と呼ぶ。
(+ 1 2) ⇒ 3
- Emacs Lispは空リスト()をnilと全く同じものとして取り扱う。
- 文字列を扱う関数として特に有用なものとして、formatがある。
- これはC言語ライブラリ関数のsprintfとほぼ同等の働きをする。
(format "%d は16 進数で%x" 20 20) ⇒ "20 は16 進数で14" (format "%c のコードは%d" ?A ?A) ⇒ "A のコードは65" (format "%s 県" "愛知") ⇒ "愛知県"
- listは各引数(を評価した結果)を各要素とするリストを作り出す関数である。
(list 1 2 3) ⇒ (1 2 3) (list "御河国" "穂国" "遠江国") ⇒ ("御河国" "穂国" "遠江国") (list (- 1 2) 3 (= 4 4)) ⇒ (-1 3 t) (list (list 1 2) (list 3 4)) ⇒ ((1 2) (3 4)) (list) ⇒ nil ;空リスト()とnilは同じ
- cons(コンス)は、第1引数(の評価結果)を第2引数(の評価結果)のリストの先頭に追加する関数である。
- consはCONStruct(組み立てる,構築する)の略といわれている。
(cons 1 (list 2 3)) ⇒ (1 2 3)
- carはリストの最初の要素を返す。
(car (list 1 2 3) ⇒ 1
- consはリストの2番目以降の要素のリストを返す。
(cdr (list 1 2 3) ⇒ (2 3)
- eqは2つの引数が同じ実体を表しているときに真。それ以外は偽。
(eq nil nil) ⇒ t (eq 1 2) ⇒ nil |||< -atomは引数がconsで作られたペアでないときに限り真。 >|lisp| (atom 1) ⇒ t (atom nil) ⇒ t (atom (list 1 2 3)) ⇒ nil
以上で大体5ページまでのまとめだけど、
こうやってまとめていくのは思ったよりもずっと面倒だ・・・。
あと2/3くらい残ってるよ( ´・ω・`)
とりあえず読むだけ読んで、
まとめは気が向いたときにでもやろうっと。