letを使ってローカル変数を定義できる。
ローカル変数は、一時的に使用する変数で、
グローバル変数を一時的に変更する
なお、letは入れ子にできる。letを抜けると、外側の値が有効になる。
また、let*はローカル変数が順番に代入されるので、
直前の代入の影響を受ける
以下、letとlet*の挙動を確認する。
(setq x 1) x ; => 1 (let ((x 2) null) ; グローバル変数xを一時的に変更する x ; => 2 null ; => nil ;; letは入れ子に出来る (let ((x 3)) x) ; => 3 ) ;; letを抜けたらグローバルの値になる x ; => 1 (let ((x (+ 5 5)) ;yには影響しない (y x) ;ここでは外側のxが参照される ) x ; => 10 y ; => 1 (setq x 100) x ; => 100 ) ; => 100 ;; let内の代入は外部には及ばない x ; => 1 ;; ここでは設定したばかりのxが参照される (let* ((x (+ 5 5)) ; yに影響する (y x) ; ローカル変数のxが参照される ) x ; => 10 y ; => 10 ) x ; => 1 (setq x 1) (let ((x 2)) x ; => 2 (let ((x 3)) x ; => 3 (let ((x 4)) x ; => 4 (setq x 9999)) ; => 9999 x ; => 3 ) x ; => 2 ) x ; => 1 (setq x 1) (let ((x 3) (y (1+ x))) (+ x y)) ; => 5 (let* ((x 3) (y (1+ x))) (+ x y)) ; => 7
P51
- 作者: るびきち
- 出版社/メーカー: 技術評論社
- 発売日: 2011/11/26
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 220回
- この商品を含むブログを見る