Erlang:哪种模式匹配更有效(列表)?

时间:2011-11-28 16:59:07

标签: list erlang pattern-matching cons

我正在经历“实用编程Erlang”,其中有一个定义如下的函数:

split("\r\n\r\n" ++ T, L) -> {reverse(L), T};
split([H|T], L) -> split(T, [H|L]);
split([], _) -> more.

我感兴趣的是第一场比赛,即"\r\n\r\n" ++ T - 这种模式与类似模式之间存在性能差异,我想出了:[13,10,13,10|T]?或者它们是等价的吗?

我知道这是一个非常简单的问题,我可以(可能)自己检查,但是如果存在差异,我想知道为什么会这样。

谢谢!

1 个答案:

答案 0 :(得分:8)

"\r\n\r\n" ++ T只是[13,10,13,10|T]的语法糖。它应该执行相同的。如果没有,那就错了; - )