21 lines
335 B
Plaintext
21 lines
335 B
Plaintext
var benchmark = frequire('Benchmark')
|
|
|
|
func fac_rec(n) {
|
|
n == 0 ? 1 : (n * __FUNC__(n - 1))
|
|
}
|
|
|
|
func fac_iter(n) {
|
|
var prod = 1
|
|
n.times { |i|
|
|
prod *= i
|
|
}
|
|
prod
|
|
}
|
|
|
|
var result = benchmark.timethese(-3, Hash(
|
|
'fac_rec' => { fac_rec(20) },
|
|
'fac_iter' => { fac_iter(20) },
|
|
))
|
|
|
|
benchmark.cmpthese(result)
|