# Fibonacci function using caching

cache = hash.new

fibonacci = { x |
  true? cache.key?(x)
    { cache[x] }
    {true? x < 2, x, { cache[x] = fibonacci(x - 1) + fibonacci(x - 2) }}
}

1.to 50 { i |
  p fibonacci(i) % 36 
}