綜觀FSharp.Core和PowerPack的來源,我看到了很多的接受兩個或多個參數的函數高階函數使用FSharpFunc.Adapt。例如:什麼時候應該使用FSharpFunc.Adapt?
let mapi f (arr: ResizeArray<_>) =
let f = FSharpFunc<_,_,_>.Adapt(f)
let len = length arr
let res = new ResizeArray<_>(len)
for i = 0 to len - 1 do
res.Add(f.Invoke(i, arr.[i]))
res
關於FSharpFunc.Adapt
的文檔非常薄。這是一個普遍的最佳實踐,我們應該在任何時候使用具有類似簽名的高階函數來使用它。只有當傳入的函數被多次調用?它有多少優化?我們是否應該在任何地方使用Adapt
,或者很少?
謝謝你的時間。