可変長引数を可変長関数へ渡す
call 使えば簡単に行えました。
a:000 で、可変長引数のリストが取得できるのがイイネ。
[ソース]
function! s:apply(func, ...) return call(a:func, a:000) endfunction function! s:print(...) for var in a:000 echo var endfor endfunction function! s:sum(...) let l:sum = 0 for var in a:000 let l:sum += var endfor return l:sum endfunction call s:apply("s:print", 0, "hoge", "foo") echo s:apply("s:sum", 2, 3, 6, 1)
[出力]
0 hoge foo 12