Em F #, como você curry funções ParamArray (como sprintf)?
Em F #, como você curry uma função que aceita um número variável de parâmetros?
Eu tenho código como este ... (a função de log é apenas um exemplo, a implementação exata não importa)
let log (msg : string) =
printfn "%s" msg
log "Sample"
Ele é chamado em todo o código com strings formatadas pelo sprintf, ex.
log (sprintf "Test %s took %d seconds" "foo" 2.345)
Eu quero curry a funcionalidade sprintf na função de log assim parece ...
logger "Test %s took %d seconds" "foo" 2.345
Eu tentei algo como
let logger fmt ([<ParamArray>] args) =
log (sprintf fmt args)
mas não consigo descobrir como passar o argumento ParamArray até a chamada sprintf.
Como isso é feito em F #?