Drkcore

06 02 2009 lisp Tweet

Common Lispでメモ化

memoizeというのを使ってみた。

(asdf:oos 'asdf:load-op 'memoize)

(defun fib (n)
  (if (<= n 1)
      1
      (+ (fib (- n 1))
          (fib (- n 2)))))

(memoize:def-memoized-function fibm (n)  (if (<= n 1)
      1                    
      (+ (fibm (- n 1))
          (fibm (- n 2)))))

実行

* (fib 40) ; 結構待たされる

165580141
* (fibm 40) ; 一瞬

165580141

SBCLでベンチマークの取り方がわからん。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021