ich so etwas wieeine timeit Funktion für F #
let timeit (x:'a->'b) =
let start = System.DateTime.Now
x
let duration = System.DateTime.Now - start
printfn "time usage = %A" duration.Milliseconds
()
zu schreiben versuche es für
let matrixtest() =
let x = vector[1.;2.;4.]
let y = matrix[[1.;2.;4.;];[3.;4.;9.;]]
printfn "%A" (y * x)
()
aber nicht für
let rec fib x =
match x with
| 0 | 1 -> 1
| n -> fib (n-1) + fib (n-2)
sa F # funktioniert, ist statisch typisiert.
Irgendeine Idee? Vielen Dank.
Wie wäre es mit zwei/mehr Parameter für f? –
Wenn Sie mehr Parameter haben, können Sie currying verwenden: Das Timing von f x y wird zu '(timeit f x) y', da (f x) eine Funktion ist, die nur ein y benötigt. Und '(Zeit g x y) z' mal die Berechnung von g x y z, etc .. – cfern
Hmm. Keine Bearbeitung von Kommentaren Ich meinte Zeit (fx) y. In diesem Fall spielen Klammern eine Rolle. Entschuldigen Sie. – cfern