ちょっと気になったこと

関数の仮引数に対して、呼び出し時の引数が少なくても問題ない。

> (function(x,y){})(10)
NULL

でも、関数内で使われるとダメ。

> (function(x,y){y})(10)
 以下にエラー (function(x, y) { :
    引数 "y" がありませんし、省略時既定値もありません

関数実行時に引数の数をチェックしてないようだ。
仮引数の変数を評価したときに、オブジェクトが存在しなければエラーになるのかな?

ついでに、引数が多いとき。

> (function(x,y){})(10,10,10)
 以下にエラー (function(x, y) { :  使われていない引数 (10)

代入先の仮引数がないからエラーになってる気がする。