W F #, jak możesz curry funkcji ParamArray (jak sprintf)?

W F #, jak curry funkcji, która akceptuje zmienną liczbę parametrów?

Mam taki kod ... (funkcja dziennika to tylko przykład, dokładna implementacja nie ma znaczenia)

let log (msg : string) =
    printfn "%s" msg

log "Sample"

Jest wywoływany w całym kodzie za pomocą łańcuchów sformatowanych sprintf, np.

log (sprintf "Test %s took %d seconds" "foo" 2.345)

Chcę uruchomić funkcję sprintf w funkcji dziennika, aby wyglądała jak ...

logger "Test %s took %d seconds" "foo" 2.345

Próbowałem czegoś takiego

let logger fmt ([<ParamArray>] args) =
    log (sprintf fmt args)

ale nie wiem, jak przekazać argument ParamArray do wywołania sprintf.

Jak to zrobić w F #?

questionAnswers(2)

yourAnswerToTheQuestion