Haskell có các bộ dữ liệu có thể được viết là
(a,b,c)
Tuy nhiên đây chỉ là cú pháp đường cho
(,,)a b c
Nói chung, một tuple n có thể được hình thành với n-1 ,
s giữa (
... )
theo sau là các phần tử của nó được phân tách bằng khoảng trắng. Ví dụ: 7-tuple, (1,2,3,4,5,6,7)
có thể được hình thành bởi
(,,,,,,)1 2 3 4 5 6 7
Vì Haskell không có 1 tuple nên chúng không thể được hình thành. Bạn cũng sẽ không chịu trách nhiệm cho các bộ dữ liệu trống.
Các bộ dữ liệu lồng nhau có thể được hình thành bằng cách sử dụng parens để ghi đè thứ tự các thao tác.
((1,2),3) == (,)((,)1 2)3
Là một phần trong nỗ lực của chúng tôi để loại bỏ tất cả đường cú pháp khỏi Haskell, tôi sẽ đề nghị bạn viết một chương trình loại bỏ đường cú pháp khỏi các bộ dữ liệu của Haskell.
Chương trình của bạn nên lấy một tuple, một mảng hoặc một chuỗi đại diện cho một tuple có đường và sẽ xuất ra một chuỗi đại diện cho một tuple "không đường". Các bộ dữ liệu đầu vào sẽ chỉ bao gồm các số nguyên dương hoặc các bộ dữ liệu khác.
Vì chúng tôi đang chơi golf ở đây nên đầu ra của bạn phải ngắn. Nó không nên chứa không cần thiết
Không gian. Không gian chỉ nên được sử dụng để phân tách các đối số của hàm tuple và không xuất hiện sau một
)
hoặc trước một(
Dấu ngoặc đơn. Chỉ nên sử dụng dấu ngoặc đơn khi hình thành các hàm tuple hoặc khi các bộ dữ liệu lồng nhau.
Đây là một câu hỏi golf-code vì vậy câu trả lời sẽ được ghi bằng byte với ít byte hơn sẽ tốt hơn.
Các trường hợp thử nghiệm
(1,2) -> (,)1 2
(1,2,3) -> (,,)1 2 3
((1,2),3) -> (,)((,)1 2)3
(1,2,3,4) -> (,,,)1 2 3 4
(1,(2,3)) -> (,)1((,)2 3)
(10,1) -> (,)10 1
,
((1,(2,3)),4,(5,6))
và (1,(2,3),4)
.