Wie curryst du in F # ParamArray-Funktionen (wie sprintf)?
Wie erstellen Sie in F # eine Funktion, die eine variable Anzahl von Parametern akzeptiert?
Ich habe Code wie diesen ... (Die Log-Funktion ist nur ein Beispiel, die genaue Implementierung spielt keine Rolle)
let log (msg : string) =
printfn "%s" msg
log "Sample"
Es wird im gesamten Code mit sprintf-formatierten Zeichenfolgen aufgerufen, z.
log (sprintf "Test %s took %d seconds" "foo" 2.345)
Ich möchte die Sprintf-Funktionalität in der Log-Funktion curry, so sieht es aus wie ...
logger "Test %s took %d seconds" "foo" 2.345
Ich habe so etwas versucht
let logger fmt ([<ParamArray>] args) =
log (sprintf fmt args)
Aber ich kann nicht herausfinden, wie ich das ParamArray-Argument an den sprintf-Aufruf weitergeben kann.
Wie geht das in F #?