def fib(n) return n if n < 2 fib(n-1) + fib(n-2) end def fib_with_caching(n) @fib_cache ||= {} @fib_cache[n] ||= fib_without_caching(n) end alias_method_chain :fib, :caching