瞎扯淡 为什么 Ruby 不支持尾递归优化

mizuhashi · 发布于 2015年11月29日 · 最后由 zhang_soledad 回复于 2015年12月02日 · 1667 次阅读
23529

Elixir:

def a do
  do_sth
  a
end

Ruby:

def a
  do_sth
  a
end

def do_sth
  def a
    'modifying a'
  end
end

Elixir: GG


共收到 9 条回复
3

#1楼 @sxk 学习了。

23468

#2楼 @lgn21st 居然被大神回帖了 😂 😃

3

#3楼 @sxk 学到了新知识,当然要感谢了。顺便还找到了一篇文章 http://nithinbekal.com/posts/ruby-tco/

23529

#1楼 @sxk 确实奈斯,我原来觉得尾递归优化要把方法体改写成迭代,实际上只需要把调用改写成迭代,方法体变化没有影响的

19812

谢谢楼上几位的分享, 另外我想知道Ruby中lambda表达式有办法尾递归么?

23482

#5楼 @lgn21st 这篇文章开头就把“Tail Call”与“Tail Recursion”搞混了……

py的创始人反对TCO,但是只优化尾递归(可以叫TRO?)的话调用栈应该是能看的吧

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册