在Ruby中简单的调用
发布时间:2020-12-16 21:55:52 所属栏目:百科 来源:网络整理
导读:我试图用ruby做一些咖喱: def add(a,b) return a+bendplus = lambda {add}curry_plus = plus.curryplus_two = curry_plus[2] #Line 24puts plus_two[3] 我得到错误 func_test.rb:24:in `[]': wrong number of arguments (1 for 0) (ArgumentError) 来自func
我试图用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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |