変数=値と書くletマクロ
Arc版withを書いててふと思った。
ローカル変数部か評価式本体かの区別は、括弧のかわりに=を使ったらよくね?
(define-syntax letm (syntax-rules (=) ((_ (ks vs) k = v . r) (letm ((k . ks) (v . vs)) . r)) ((_ (ks vs) . body) ((lambda ks . body) . vs)) ((_ . r) (letm (() ()) . r))))
実行例
gosh> (letm x = 1 y = 2 (+ x y)) 3