対話によるCommon Lisp 7.31-34
CL-USER> (let ((x 10) (y 20)) (+ x y)) 30 CL-USER> (let ((x 10) (y x)) (+ x y)) 例外発生した。。。 CL-USER> (let* ((x 10) (y x)) (+ x y)) 20
user=> (doc let) ------------------------- let Special Form Please see http://clojure.org/special_forms#let nil user=> (let ((x 10) (y 20)) (+ x y)) java.lang.IllegalArgumentException: let requires a vector for its binding (NO_SO URCE_FILE:0) user=> (let [x 10 y 20] (+ x y)) 30 user=> (let [x 10 y x] (+ x y)) 20 user=> (let* [x 10 y x] (+ x y)) 20 user=> (doc let*) java.lang.Exception: Unable to resolve var: let* in this context (NO_SOURCE_FILE :133) user=>
clojureの場合、letの次のbindingsは[]で括る。
letがlet*のように振舞ってる。
でも(doc let*)すると例外になる。
なんで?