なんとなく試してみた。
~/workspace/sketch % time ./clojure.clj 3524578 ./clojure.clj 2.44s user 0.11s system 98% cpu 2.588 total ~/workspace/sketch % time ./python.py 3524578 ./python.py 2.97s user 0.02s system 98% cpu 3.025 total
へー。 それだけなんだけど。
#!/usr/bin/env clj (defn fib [n] (if (<= n 2) 1 (+ (fib (- n 1)) (fib (- n 2))))) (println (fib 33))
#!/usr/bin/env python # encoding: utf-8 from __future__ import print_function def fib(n): if n <= 2: return 1 return fib(n - 1) + fib(n - 2) print(fib(33))
追記
(def fibs (lazy-cat [0 1] (map + fibs (rest fibs)))) (println (take 33 fibs))clojureでフィボナッチ
ほへー。よくわかりませんが早い…。
% time ./clojure.clj (0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121 393 196418 317811 514229 832040 1346269 2178309) ./clojure.clj 1.02s user 0.11s system 94% cpu 1.200 total