我正在尝试记忆我的 Pascal 三角形生成器的实现,作为 Ruby 学习实验。我有以下工作代码:
module PascalMemo
@cache = {}
def PascalMemo::get(r,c)
if @cache[[r,c]].nil? then
if c == 0 || c == r then
@cache[[r,c]] = 1
else
@cache[[r,c]] = PascalMemo::get(r - 1, c) + PascalMemo::get(r - 1, c - 1)
end
end
@cache[[r,c]]
end
end
def pascal_memo (r,c)
PascalMemo::get(r,c)
end
这可以更简洁吗?具体来说,我可以比这更简单地创建一个具有局部闭包的全局范围函数吗?