(let ((a "A")) (print a))
いきなりこれをみると「なぜ (a "A")
ではなく ((a "A"))
なのか」が理解できず、混乱する。以下のように考えるとすっきり覚えられる。
;; 一番シンプルな形はこれ。 a は nil (let (a) (print a)) ;; a の初期値を与えるために (a "初期値") という書式が必要 (let ((a "A")) (print a)) ;; 初期値なしならこう書ける。 a, b ともに nil (let (a b) (print (list a b))) ;; 初期値ありだとそれぞれ (a "初期値") (b "初期値") と書く (let ((a "A") (b "B")) (print (list a b))) ;; 初期値ありと初期値なしが混ざってもよい (let ((a "A") b) (print (list a b)))