在 F# 中,如何对接受可变数量参数的函数进行柯里化?
我有这样的代码......(日志功能只是一个例子,确切的实现并不重要)
let log (msg : string) =
printfn "%s" msg
log "Sample"
它在整个代码中使用 sprintf 格式的字符串被调用,例如。
log (sprintf "Test %s took %d seconds" "foo" 2.345)
我想在 log 函数中 curry sprintf 功能,所以它看起来像......
logger "Test %s took %d seconds" "foo" 2.345
我试过类似的东西
let logger fmt ([<ParamArray>] args) =
log (sprintf fmt args)
但我无法弄清楚如何将 ParamArray 参数传递给 sprintf 调用。
这是如何在 F# 中完成的?