Có cách nhanh chóng để chuyển đổi danh sách phẳng thành danh sách hai bộ sao cho danh sách phẳng như [1,2,3,4,5,6] trở thành [{1,2}, {3,4 không }, {5,6}]?Cách tốt nhất để chuyển đổi một danh sách phẳng thành một bộ hai bộ trong Erlang?
này hoạt động, nhưng nó cảm thấy WRONG chỉ đơn giản:
tuples_from_flat_list(Target) ->
TargetWithIndex = lists:zip(lists:seq(1, length(Target)), Target),
{K, V} = lists:partition(fun({I, _}) -> I rem 2 == 1 end, TargetWithIndex),
lists:zipwith(fun({_, X}, {_, Y}) -> {X, Y} end, K, V).
Có, đảo chiều và tiền tố luôn hiệu quả hơn. Nhưng tôi nghĩ rằng cách tiếp cận "thẳng" hoạt động tốt như Bài 1, theo sau một cách nhanh chóng bởi tiền tố/ngược lại như Bài 2 ...! –
Tại sao bạn đếm chiều dài của danh sách khi bạn không thực hiện một số thông báo lỗi nhạy cảm hơn. Đảo ngược/2 của bạn sẽ tăng thông báo lỗi tương tự như ngược lại/1 của bạn. Đó là công việc vô giá trị và làm chậm nó một chút. –
@Hynek: Tôi nghĩ nó tốt hơn vì nó không hoạt động trước đó. Ngoài ra nó cho biết thêm rõ ràng cho một trong những người sẽ đọc mã số – zakovyrya