2010-10-14 37 views

Trả lời

3

Như prepending một yếu tố cũng giống như chèn nó ở vị trí 1, bạn có thể sử dụng được xây dựng trong chức năng erlang:insert_element/3:

> erlang:insert_element(1, {a, b}, z). 
{z,a,b} 

Chức năng này đã được bổ sung trong Erlang/OTP R16A.

8

Dường như với tôi điều đó không được khuyến khích. Nếu bạn muốn một danh sách, hãy sử dụng một danh sách.

Getting Started with Erlang:

Tuples có số lượng cố định trong đó.
+1

Chắc chắn, nếu bạn muốn danh sách sử dụng cấu trúc động thay thế. – rvirding

+0

Trường hợp sử dụng thực tế của tôi là tôi có một số hàm trả về các bộ dữ liệu "thô" (ví dụ: '{Name, Age}') và muốn biến chúng thành các bộ dữ liệu được gắn thẻ ('{person, Name, Age}'). Tôi không muốn cấu trúc năng động chút nào. –

+2

là cấu trúc sâu hơn ok cho bạn? như {person, {Name, Age}}? Vì vậy, bạn có thể gọi hàm bằng thẻ này: {person, who (Args)} .. – user425720

6

Nếu bạn có một số hữu hạn có độ dài tuple có thể, bạn có thể làm điều này:

prepend(X, {}) -> {X}; 
prepend(X, {A}) -> {X, A}; 
prepend(X, {A, B}) -> {X, A, B}; 
prepend(X, {A, B, C}) -> {X, A, B, C}. 

Bạn có thể tiếp tục mô hình này cho tới chừng nào bạn cần.

Các vấn đề liên quan