Shammer's Philosophy

My private adversaria

Lispのlet式

Lispには、let という関数(?)がある。これは、いわゆるローカル変数を定義する、というような役割なのだが・・・ちょっとわかりにくい。こういう風に使うみたいだ。

(defun 
  let-test (lst)
  (let (
          (value_1 '(a b))
          (value_2 '(1 2))
        )
    (format t "value_1: ~A~%" value_1)
    (format t "value_2: ~A~%" value_2)
    (format t "~A~% (append lst value_1 value_2))
  )
)

形式としては、

(let (1個以上の変数) (その変数を使用する処理))

という感じで、この let で囲まれた括弧の中でのみ有効な変数を定義できる、というもの。キーボードから入力した文字を一時的に変数に格納するだけ、という場合などで使えそう。