2016-01-02 14 views
8

Trong Perl, toán tử , có thể được sử dụng để nối các danh sách; tuy nhiên, Perl 6 không làm phẳng Danh sách trong ngữ cảnh này dẫn đến Danh sách hai Danh sách. Kết hợp các Danh sách yêu cầu sử dụng |, toán tử trượt.Perl 6 Danh sách ghép nối mà không cần trượt?

my @a = <a b c>; 
my @b = <d e f>; 
my @ab = |@a, |@b; 

Có viết tắt nào cho hoạt động này không?

Trả lời

10

Bạn có thể sử dụng "phẳng" sub cho việc này:

my @a = <a b c>; 
my @b = <d e f>; 
my @ab = flat @a, @b; 
say @ab.perl; #> ["a", "b", "c", "d", "e", "f"] 
my @abf = (@a, @b).flat; 
say @abf.perl; #> ["a", "b", "c", "d", "e", "f"] 
+1

hoặc @ab tôi = (@a, @b) .flat '; ' – Joshua

+3

này có lẽ nên chỉ ra rằng nó sẽ loại bỏ nhiều lớp nếu các giá trị không phải là vô hướng. 'my \ list = (1,2, (3,4, (5,6))); nói flat list' => '(1 2 3 4 5 6)' nhưng sử dụng '|()' chỉ làm phẳng các phần riêng lẻ 'my \ list = (1,2, | ((3,4, (5,6)))); nói list' => '(1 2 3 4 (5 6))' –

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