2011-08-30 20 views
5

在給定的兩對比較中,哪一對(每對)對於系統資源二郎神:列表:append/2與erlang:'++'/ 2,附加到列表末尾與附加到它的頭

的Qn1:lists:append(L1,L2)erlang:'++'(L1,L2)
QN2寫了列表的頭說:[NewHead|List]與寫作與列表的末尾:List ++ [NewValue]

我問這個,因爲有是我的程序的密集部分h將閱讀和寫入列表。我需要決定我是否會寫信給名單的負責人或寫信給他們的目的,反之亦然。

回答

18

1:它們是相同的功能。 'append'是'++'的別名(反之亦然)。另請參見Erlang ++ operator. Syntactic sugar, or separate operation?

2:不要通過追加來逐步建立列表。追加一次是好的,但在循環中追加會給你二次性的行爲。即,AddedStuff ++累加器是可以的(即使在循環中),因爲你正在向左「增長」,但是累加器++ AddedStuff在一個循環中(向右增長)非常糟糕。如果順序很重要,向左增長然後逆向或後來排序會好得多。