Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.36 KB | None | 0 0
  1. class memoize private (val f: Int => Int) {
  2. import scala.collection.mutable
  3. val cache = new mutable.HashMap[Int, Int]()
  4. def memoized_f(x : Int) : Int =
  5. cache.getOrElseUpdate(x, f(x))
  6. }
  7. object memoize {
  8. def apply(f: Int => Int) : Int => Int = new memoize(f).memoized_f
  9. }
  10.  
  11. val fib : Int=>Int = memoize((n:Int) => {
  12. if (n <= 1) n else fib(n-1) + fib(n-2)
  13. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement