Add all the A tasks

This commit is contained in:
Ingy döt Net 2013-04-10 14:58:50 -07:00
parent 2dd7375f96
commit 051504d65b
1608 changed files with 18584 additions and 0 deletions

View file

@ -0,0 +1,20 @@
require 'continuation' unless defined? Continuation
module Kernel
module_function
def recur(*args, &block)
cont = catch(:recur) { return block[*args] }
cont[block]
end
def recurse(*args)
block = callcc { |cont| throw(:recur, cont) }
block[*args]
end
end
def fib(n)
raise RangeError, "fib of negative" if n < 0
recur(n) { |m| m < 2 ? m : (recurse m - 1) + (recurse m - 2) }
end