欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pattern Match In Ruby

程序员文章站 2022-07-04 18:39:15
...
最近看了一些Erlang,模式匹配是个好东西,简单的sum函数:

sum([]) -> 0;
sum([First|Rest]) -> First + sum(Rest).


突然想起来,其实Ruby里面也可以用模式匹配:

def sum(list)
  return 0 if list.empty?
  first, *rest = *list
  return first + sum(rest)
end


尾递归版本:

def sum(list)
  sum_acc(list, 0)
end

def sum_acc(list, s)
  return s if list.empty?
  first, *rest = *list
  return sum_acc(rest, first + s)
end


Pattern Match In Ruby

上一篇: websocket demo

下一篇: websocket demo