【发布时间】:2021-09-30 18:51:48
【问题描述】:
在 Cesarini 和 Thomson 的 Erlang Programming 第 90 页中,有一个没有详细讨论的示例。我是函数式编程和递归思维的新手,所以我不熟悉用这种方式解决问题。
"例如下面的函数通过交错合并两个列表(长度相同) 他们的价值观:“
merge(Xs,Ys) -> lists:reverse(mergeL(Xs,Ys,[])).
mergeL([X|Xs],Ys,Zs) -> mergeR(Xs,Ys,[X|Zs]);
mergeL([],[],Zs) -> Zs.
mergeR(Xs,[Y|Ys],Zs) -> mergeL(Xs,Ys,[Y|Zs]);
mergeR([],[],Zs) -> Zs.
这是如何工作的?谢谢!
【问题讨论】: