En F #, ¿cómo curry una función que acepta una cantidad variable de parámetros?En F #, ¿cómo se curry las funciones de ParamArray (como sprintf)?
que tienen código como este ... (la función de registro es sólo un ejemplo, la aplicación exacta no importa)
let log (msg : string) =
printfn "%s" msg
log "Sample"
a que lo invocan en todo el código con las cadenas con formato sprintf, ex.
log (sprintf "Test %s took %d seconds" "foo" 2.345)
Quiero ganarse la funcionalidad sprintf en la función de registro por lo que parece ...
logger "Test %s took %d seconds" "foo" 2.345
He intentado algo así como
let logger fmt ([<ParamArray>] args) =
log (sprintf fmt args)
pero no puedo averiguar cómo pasar el argumento ParamArray a la llamada sprintf.
¿Cómo se hace esto en F #?
FYI - Usted pregunta por [expresiones de formato] (http://msdn.microsoft.com/en-us/library/ee340241) (que están escritos), no param arrays (que están sin tipo). – Daniel