Ruby 如何咖喱方法?

Ruby 如何咖喱方法?,ruby,Ruby,考虑一下这个代码 def f x, y x + y end g = lambda(&method(:f)).curry.(1) g.(2) # => 3 g的表达式太难读取。它可以简化吗?我认为你能得到的最短的(也是最可读的!)是 g = method(:f).to_proc.curry[1] g[2] # => 3 如果您使用的是Ruby 2.2.0或更高版本,则可以使用: def f(x, y) x + y end g = method(:f).c

考虑一下这个代码

def f x, y
  x + y
end

g = lambda(&method(:f)).curry.(1)

g.(2) # => 3
g
的表达式太难读取。它可以简化吗?

我认为你能得到的最短的(也是最可读的!)是

  g = method(:f).to_proc.curry[1]
  g[2] # => 3

如果您使用的是Ruby 2.2.0或更高版本,则可以使用:

def f(x, y)
  x + y
end
g = method(:f).curry[1]
p g[2] # => 3