實現一個Erlang列表理解,它從列表中獲取兩個元素並創建一個新的列表列表。Erlang:如何實現Erlang列表理解?
我有這樣的代碼
pair([], Acc) -> lists:reverse(Acc);
pair(L, Acc0) ->
[ A, B | T ] = L,
Acc = [ [A, B] | Acc0 ],
pair(T, Acc).
的正常工作:
7> l:pair(lists:seq(1,6), []).
[[1,2],[3,4],[5,6]]
,但好像我應該能夠實現這個作爲一個列表理解。我的Erlang-fu太弱,無法提出。
有什麼建議嗎?
感謝
這跟着Erlang的口頭禪「讓它崩潰」,例如,對於'[a]'的情況。 – Tilman
@Tilman是的,該函數是**定義的**來獲取元素對,所以如果在列表中有奇數個元素時是錯誤的。你當然可以總是定義在這種情況下會發生什麼,然後處理它。 – rvirding