本スレの荒れっぷりを見て釣りっぽいのに安易に回答するのはどうかと思っていたけど。

>>878
C のコードの hoge 関数が間違っているよ。x => i に置き換えれば挙動は似ているが、C の動作に
おきかえて Lisp を理解するのは良くないと思う。C の main 内の int i がレキシカルスコープというなら
そうかもしれないが、たとえば C では main 内の int i をクロージャに閉じ込めて main のスコープ終了後に
使うという事ができない…といっても C で理解していると main が終った後(C では main は特別な関数だからね…)?
クロージャ?ととりあえず関係無いところでひっかかるからね。

>>879
ダメだと思うよ。それマクロ展開時に値が確定しちゃうから元の C や Perl 版とは挙動が異なる。
素の CL ではシンボルからレキシカル変数の値を実行時に取得することはできない。
個人的には不要と考えているが、どうしてもやりたきゃ展開形を↓のようにする必要がある。
(if 条件
(setf x value)
(setf y value))