Vim script の lambda は過剰に引数を渡してもエラーにならない

Vim script の lambda では定義した引数以上の引数を渡してもエラーになりません。

" 過剰に引数を渡してもエラーにならない
echo { a, b -> a + b }(1, 2, 3, 4)
" => 3

これは次のような場合に有効です。

let Odd = { value -> value % 2 != 0 }

" filter() の第二引数の関数では2つの引数を渡すがエラーにならない
echo filter({ 1 : "one", 2 : "two", 3 : "three" }, Odd)

これは地味に便利。

[使用した vim のバージョン]

  • 7.4.2067