読者です 読者をやめる 読者になる 読者になる

Vim script の lambda は :call で呼び出すことが出来ない

Vim

Vim script の lambda をいろいろと試していたんですが、どうやら :call で呼び出せない模様。

call { x -> execute("echo x", "") }(10)
" E121: 未定義の変数です: x
" E15: 無効な式です:  x -> execute("echo x", "")
" E475: 無効な引数です: { x -> execute("echo x", "") }(10)

[回避方法]

とりあえず、call() を経由して呼びだせば問題ないようです。

call call({ x -> execute("echo x", "") }, [10])
" 10

これがバグなのか仕様なのかが気になる。

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

  • 7.4.2067