Vim script の関数に closure 機能が実装された
Vim の patch 7.4.2120 で Vim script の関数に closure 機能が実装されたました。
これは :function
の引数に closure
キーワードを追加することで、関数内から関数外の変数を参照できるような機能です。
function! s:main() let value = 0 let list = [] " closure を付けて関数を定義 function! s:closure() closure " 関数外のローカル変数が参照できる let value += 1 call add(list, value) endfunction call s:closure() call s:closure() call s:closure() echo value " => 3 echo list " => [1, 2, 3] endfunction call s:main()
これはすごい。