Vim Script で、fold 書いてみた
実装自体はそんなに難しくない。
需要があるかは分からない。
[ソース]
function! s:fold(list, state, forwardOp) let l:op = a:state for value in a:list let l:op = a:forwardOp(l:op, value) endfor return l:op endfunction function! s:plus(a, b) return a:a + a:b endfunction return a:a - a:b endfunction echo s:fold([2, 3, 4], 1, function("s:plus")) echo s:fold([2, 3, 4], 1, function("s:minus"))
[出力]
10 -8
function("s:plus") の辺りがちょっと助長な気がする。
辞書型で関数定義して、それを渡した方がいいかしら。