Về currying trong Ruby 1.9.x, tôi đã sử dụng nó ở một số nơi, và có thể được dịch như về cơ bản hỗ trợ các thông số mặc định để các đối số proc:Ruby Reverse Currying: Điều này có khả thi không?
p = proc {|x, y, z|x + y + z}
p.curry[1] #=> returns a lambda
p.curry[1, 2] #=> returns a lambda
p.curry[1, 2, 3] #=> 6
p2 = p.curry[1, 2]
p2.(2) #=> 5
p2.(4) #=> 7
rất tiện dụng, phải không? là, tôi muốn để có thể cà ri ngược lại, có nghĩa là, điền vào các đối số cuối cùng của proc của tôi với một giá trị ngẫu nhiên. Như thế này:
p = proc{|x, y| x - y }.curry[1]
p.(4)
kết quả mong muốn của tôi sẽ là 3. this returns -3.
humm, trông sạch đủ, sẽ cung cấp cho nó một thử. Trường hợp sử dụng là sao chép ở một nơi nhất định mà bạn nhận được từ các đối số mặc định trên các phương thức, và chúng chỉ có thể được thiết lập từ đối số cuối cùng về sau. Tôi muốn sử dụng cùng một phương thức và thay thế đối số mặc định bằng một giá trị khác trong ngữ cảnh khác. – ChuckE