Create a gist now

Instantly share code, notes, and snippets.

Challenge: implement enumerable methods using #inject instead of #each.
def collect(&block)
inject([]) { |memo, obj| memo << block.call(obj) }
end
def detect(&block)
inject(nil) { |memo, obj| memo ||= obj if block.call(obj) }
end
def reject(&block)
inject([]) { |memo, obj| block.call(obj) ? memo : memo << obj }
end
def select(&block)
inject([]) { |memo, obj| block.call (obj) ? memo << obj : memo }
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment