综观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
,或者很少?
谢谢你的时间。