【发布时间】:2014-01-28 17:17:14
【问题描述】:
我在理解递归方面有问题,我没有在书籍和教程中得到解释。下面的例子在一个列表中找到了最大值,这里我卡在第二行,我根本不明白max([H|T], Max) when H > Max ->之后发生了什么
如果我能对代码中的所有步骤进行解释,我将不胜感激,例如为什么会出现 -> max(T, H); 和 -> Max.
max([H|T]) -> max(T, H).
max([H|T], Max) when H > Max -> max(T, H);
max([_|T], Max) -> max(T, Max);
max([], Max) -> Max.
非常感谢! E.
【问题讨论】:
-
如果您还没有找到关于 SO 递归的非常详细的帖子:stackoverflow.com/questions/717725/understanding-recursion?rq=1