Skip to content

Instantly share code, notes, and snippets.

@closer
Created November 14, 2009 05:34
Show Gist options
  • Select an option

  • Save closer/234396 to your computer and use it in GitHub Desktop.

Select an option

Save closer/234396 to your computer and use it in GitHub Desktop.
class Array
def chain m
r = shift
each{|n| r = r.send(m, n)}
r
end
end
class Range
def chain m
to_a.chain m
end
end
#= Practice::factorial
# 1 *2 *3 *.. *n
require "chain"
module Practice
def factorial1 n
n == 1 ? 1 : n * factorial1(n - 1)
end
def factorial2 n
(1..n).chain :*
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment