8

このコードを検討してください

def f x, y
  x + y
end

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

g.(2) # => 3

for の式gは読みにくいです。単純化できますか?

4

2 に答える 2

12

Ruby 2.2.0 以降を使用している場合は、Method#curryを使用できます。

def f(x, y)
  x + y
end
g = method(:f).curry[1]
p g[2] # => 3
于 2014-10-14T05:05:04.977 に答える
8

私はあなたが得ることができる最短の(そして最も読みやすい!)は

  g = method(:f).to_proc.curry[1]
  g[2] # => 3
于 2012-12-20T18:52:43.717 に答える