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

List Erlang:哪种模式匹配更有效(列表)?,list,erlang,pattern-matching,cons,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]?或者它们是等价的 我知道这是一个非常简单的问题,我可以(可能)自己检查一下

我正在学习“实用编程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]
?或者它们是等价的

我知道这是一个非常简单的问题,我可以(可能)自己检查一下,但如果有区别,我想知道为什么会这样


谢谢

“\r\n\r\n”++T
只是
[13,10,13,10 | T]
的语法糖。它的性能应该是相同的。如果没有,就有问题;-)

我想也许
L1++L2
在某种程度上是不同的,因为我找不到一种方法将它转换成
cons
es,当这样使用时:
t++“\r\n”
-但是多亏了你的回答,我再次思考,我意识到这是可能的,尽管有点冗长。谢谢<代码>T++“\r\n”无法转换为conse,因此不能用于模式匹配。