在Ruby中简单的调用

前端之家收集整理的这篇文章主要介绍了在Ruby中简单的调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图用ruby做一些咖喱:
def add(a,b)
  return a+b
end

plus = lambda {add}
curry_plus = plus.curry
plus_two = curry_plus[2] #Line 24
puts plus_two[3]

我得到错误

func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError)

来自func_test.rb:24:在`

但如果我这样做

plus = lambda {|a,b| a+ b}

似乎工作但是通过打印加后,用lambda分配两种方式返回相同类型的对象.我有什么误解?

解决方法

lambda {|a,b| a+ b}

创建一个lambda,它接受两个参数,并返回第一个调用的结果,第二个作为参数.

lambda {add}

创建一个没有参数和调用add的参数的lambda,当然这是一个错误.

要做你想要的,你应该做

plus = lambda {|x,y| add(x,y)}

要么

plus = method(:add).to_proc

猜你在找的Ruby相关文章