Issue #4539 has been updated by Thomas Sawyer.


@matz is symbol really needed?

    class Array

      def zip(a, &b1)
        if b
          r  = []
          b2 = lambda{ |x| r << b1.call(*x) }
          super(a, &b2)
          r
        else
          super(a)
        end
      end

    end


    [1,2,3].zip([5,6,7], &:+)  #=> [6,8,10]

----------------------------------------
Feature #4539: Array#zip_with
http://redmine.ruby-lang.org/issues/4539

Author: Michael Kohl
Status: Assigned
Priority: Normal
Assignee: Yukihiro Matsumoto
Category: core
Target version: 


=begin
Inspired by Haskell's ((|zipWith|)) function, I hacked on together for Ruby:

 [1,2,3].zip_with([6,5,4], :+) #=> [7, 7, 7]
 [1,2,3].zip_with([6,5,4]) { |a,b| 3*a+2*b } #=> [15, 16, 17]

So far I only have a Ruby version of it:

https://gist.github.com/731702b90757e21cadcb

My questions:

1. Would this method be considered a worthwhile addition to Array?

2. I've never hacked on the C side of Ruby (read some parts of the source though) and my C is quite rusty. I'd like to change that, would somebody be willing to help me turn this into a proper patch?
=end



-- 
http://redmine.ruby-lang.org