Thực hiện một danh sách Erlang hiểu rằng phải mất hai yếu tố từ một danh sách và làm cho một danh sách mới của danh sách.Erlang: làm thế nào để thực hiện Erlang danh sách hiểu?
tôi có mã này
pair([], Acc) -> lists:reverse(Acc);
pair(L, Acc0) ->
[ A, B | T ] = L,
Acc = [ [A, B] | Acc0 ],
pair(T, Acc).
mà hoạt động tốt:
7> l:pair(lists:seq(1,6), []).
[[1,2],[3,4],[5,6]]
nhưng nó có vẻ như tôi sẽ có thể thực hiện điều này như một sự hiểu biết danh sách. Erlang-fu của tôi quá yếu để nghĩ ra.
Mọi đề xuất?
Cảm ơn
Điều này tuân theo câu thần chú Erlang "cho phép sự cố", ví dụ: đối với vụ án '[a]'. – Tilman
@Tilman Có, chức năng được ** xác định ** để nhận các cặp thành phần vì vậy nếu đó là lỗi nếu có một số lẻ các phần tử trong danh sách. Tất nhiên bạn có thể định nghĩa điều gì sẽ xảy ra trong trường hợp đó và xử lý nó sau đó. – rvirding