[Lisp] lambdaで引数にカッコをつける場合とつけない場合の違い

lambda式の引数にカッコをつける場合とつけない場合で違いがあるようです。

gosh> ((lambda x (print x)) "foo")
(foo)
#<undef>
gosh> ((lambda (x) (print x)) "foo")
foo
#<undef>
gosh>

カッコを付けないと引数はリストで渡ってきます。
プログラミングGaucheのP74にその事が書いてありましたが、実際に試すまで意味がわかりませんでした。

1
2
3
gosh> ((lambda x (print x)) "foo" "bar")
(foo bar)
#<undef>

0 件のコメント :

コメントを投稿