【发布时间】:2017-10-28 22:19:15
【问题描述】:
我正在尝试创建一个 Ruby 方法: 1. 接受一个接受两个参数的proc作为输入 2. 返回一个带有 one 参数的 proc 作为输出(另一个参数与第一个 proc 一起传入。)
代码如下。我所读到的关于 Ruby 如何处理函数范围的所有内容都表明我应该能够将 proc.call 作为变量返回,但我不明白为什么会得到“意外返回”错误(转载于代码下方)
(我显然是 Ruby 初学者...我的经验主要是在 JavaScript 中,我认为做这种事情的机制要直观得多。)
--
def partial (proc1, val1)
return Proc.new {|val2| return proc1.call(val1,val2)}
end
adder = Proc.new {|a,b| a + b}
sum_five = partial(adder,5)
sum_five.call(10) # -- expecting 15
# unexpected return
# (repl):13:in `block in partial'
# (repl):20:in `<main>'
【问题讨论】: