【发布时间】:2018-12-08 17:25:48
【问题描述】:
我在 Erlang 中编写了一个简单的函数,将元组转换为列表。但我不明白为什么模式匹配顺序在这里很重要:
示例
tupleToList(Tuple) -> tupleToList(Tuple, size(Tuple), []).
tupleToList(_, 0, L) -> L;
tupleToList(Tuple, S, L) -> tupleToList(Tuple, S - 1, [element(S, Tuple) | L]).
为什么下面的代码不正确?
tupleToList(Tuple) -> tupleToList(Tuple, size(Tuple), []).
tupleToList(Tuple, S, L) -> tupleToList(Tuple, S - 1, [element(S, Tuple) | L]);
tupleToList(_, 0, L) -> L.
【问题讨论】:
标签: recursion erlang pattern-matching