by shigemk2

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

リストの作り方

list、consか、クオートの3つの方法でリストを作る。

;;; リストを作る
(cons 1 (cons 2 (cons 3 nil)))		; => (1 2 3)
(list 1 2 3)				; => (1 2 3)
'(1 2 3)				; => (1 2 3)
;; リストに要素を追加するときは前から追加される
(setq l (cons 3 nil))			; => (3)
(setq l (cons 2 l))			; => (2 3)
(setq l (cons 1 l))			; => (1 2 3)
;; リストのcarは先頭、cdrは残りすべて
(car '(1 2 3))				; => 1
(cdr '(1 2 3))				; => (2 3)
;;; nth関数で、リストのN番目(0始点)の要素を得る
(nth 0 '(1 2 3))			; => 1
(nth 1 '(1 2 3))			; => 2
(nth 2 '(1 2 3))			; => 3
(nth 3 '(1 2 3))			; => nil
;;; elt関数は引数の順序が逆で、nthと同じ働きをする。
(elt '(1 2 3) 0)			; => 1
(elt '(1 2 3) 1)			; => 2
(elt '(1 2 3) 2)			; => 3
(elt '(1 2 3) 3)			; => nil

nthやeltもおぼえておこう。

P54

Emacs Lispテクニックバイブル

Emacs Lispテクニックバイブル