ako*_*nsu 6 ruby haskell functional-programming
Haskell的Prelude有一个有用的函数来交换函数的参数:http://zvon.org/other/haskell/Outputprelude/flip_f.html
我需要在Ruby中做同样的事情.我不想仅仅定义一个自定义方法,而是想修补这个Proc类,以便我可以flip一起使用Proc#curry.就像是
f = lambda {|x, y| [x, y]}
g = f.flip.curry.(2)
Run Code Online (Sandbox Code Playgroud)
为...提供价值y.
我不知道如何重新开课Proc.
class Proc
def flip
lambda { |x, y| self.(y, x) }
end
end
f = lambda { |x, y| [x, y] }
f.flip.(1, 2)
#=> [2, 1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |