Skip to content

Instantly share code, notes, and snippets.

@luislavena
Created October 19, 2008 18:04
Show Gist options
  • Save luislavena/17894 to your computer and use it in GitHub Desktop.
Save luislavena/17894 to your computer and use it in GitHub Desktop.
def fib(n)
if n <= 1
return n
else
return fib(n-1) + fib(n-2)
end
end
puts fib(30)
s(:block,
s(:defn,
:fib,
s(:scope,
s(:block,
s(:args, :n),
s(:if,
s(:call, s(:lvar, :n), :<=, s(:array, s(:lit, 1))),
s(:return, s(:lvar, :n)),
s(:return,
s(:call,
s(:fcall,
:fib,
s(:array, s(:call, s(:lvar, :n), :-, s(:array, s(:lit, 1))))),
:+,
s(:array,
s(:fcall,
:fib,
s(:array, s(:call, s(:lvar, :n), :-, s(:array, s(:lit, 2)))))))))))),
s(:fcall, :puts, s(:array, s(:fcall, :fib, s(:array, s(:lit, 30))))))
fib = function(n) {
if (n <= 1) {
return n
}
else {
return (fib((n - 1)) + fib((n - 2)))
}
}
$print(fib(30))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment