Skip to content

Instantly share code, notes, and snippets.

@chadwickdonald
Created June 18, 2012 22:34
Show Gist options
  • Save chadwickdonald/2951191 to your computer and use it in GitHub Desktop.
Save chadwickdonald/2951191 to your computer and use it in GitHub Desktop.
new inject
class Array
def new_inject(*default_value)
if default_value == []
total = self.first
new_array = self.drop(1)
else
total = default_value[0]
new_array = self
end
new_array.each do |element|
total = yield(total, element)
end
total
end
end
puts ["a", "b", "c"].new_inject { |i, j| i + j }
puts ["a", "b", "c"].new_inject("d") { |i, j| i + j }
puts [2,3,4,5].inject() { |i, j| i * j }
puts [2,3,4,5].new_inject() { |i, j| i * j }
puts [2,3,4,5].new_inject(10) { |i, j| i * j }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment