Revision: 11506
Updated Code
at February 7, 2009 16:00 by narkisr
Updated Code
# no recursion (1.8 has no tail call optimization)
def fib(i)
acc = lambda do |i, n, result|
if i == -1
result
else
i, n, result = i - 1, n + result, n
redo
end
end.call(i, 1, 0)
end
Revision: 11505
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 7, 2009 15:55 by narkisr
Initial Code
def fib(i)
acc = lambda do |i, n, result|
if i == -1
result
else
i, n, result = i - 1, n + result, n
redo
end
end.call(i, 1, 0)
end
Initial URL
Initial Description
An example of redo statement in Ruby, redo makes an iteration step repeat itself again (http://www.rubyrailways.com/rubys-most-underused-keyword/).
Initial Title
Ruby redo statment
Initial Tags
ruby
Initial Language
Ruby