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 #?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage