Trong F #, làm thế nào để bạn curry một hàm chấp nhận một số biến của các tham số?Trong F #, làm thế nào để bạn curry chức năng ParamArray (như sprintf)?
tôi có mã như thế này ... (hàm log chỉ là một ví dụ, việc thực hiện chính xác không quan trọng)
let log (msg : string) =
printfn "%s" msg
log "Sample"
Nó được gọi trong suốt mã với sprintf định dạng chuỗi, ex.
log (sprintf "Test %s took %d seconds" "foo" 2.345)
Tôi muốn để cà ri có các chức năng sprintf trong hàm log để nó trông giống như ...
logger "Test %s took %d seconds" "foo" 2.345
Tôi đã thử một cái gì đó giống như
let logger fmt ([<ParamArray>] args) =
log (sprintf fmt args)
nhưng tôi không thể tìm ra làm thế nào để vượt qua đối số ParamArray thông qua cuộc gọi chạy nước rút.
Điều này được thực hiện như thế nào trong F #?
FYI - Bạn đang hỏi về [biểu thức định dạng] (http://msdn.microsoft.com/en-us/library/ee340241) (được đánh máy), không phải mảng tham số (không được nhập). – Daniel