Tôi cố gắng để viết một cái gì đó giống nhưmột hàm timeit cho F #
let timeit (x:'a->'b) =
let start = System.DateTime.Now
x
let duration = System.DateTime.Now - start
printfn "time usage = %A" duration.Milliseconds
()
nó hoạt động cho
let matrixtest() =
let x = vector[1.;2.;4.]
let y = matrix[[1.;2.;4.;];[3.;4.;9.;]]
printfn "%A" (y * x)
()
nhưng không phải cho
let rec fib x =
match x with
| 0 | 1 -> 1
| n -> fib (n-1) + fib (n-2)
sa F # là đánh máy tĩnh.
Bất kỳ ý tưởng nào? Cảm ơn.
cách có hai/nhiều tham số cho f? –
Nếu bạn có nhiều tham số hơn, bạn có thể sử dụng currying: thời gian của f x y trở thành '(timeit f x) y', vì (f x) là hàm chỉ cần y. Và '(timeit g x y) z' tính thời gian của g x y z, vv .. – cfern
Hmm. Không có chỉnh sửa nhận xét. Tôi có nghĩa là timeit (f x) y. Dấu ngoặc đơn quan trọng trong trường hợp này. Xin lỗi vì việc đó. – cfern