Haskell’in şöyle yazılabilen tülleri var.
(a,b,c)
Ancak bu sadece sözdizimsel şeker
(,,)a b c
Genel olarak, bir N tuple ile oluşturulabilir , n-1 ,
arasında s (
... )
unsurları, ardından boşluk ile birbirlerinden ayrılmıştır. Örnek 7-tuple için (1,2,3,4,5,6,7)
oluşturulabilir
(,,,,,,)1 2 3 4 5 6 7
Haskell'in 1 teli olmadığı için oluşturulamaz. Ayrıca boş tüllerden sorumlu tutulmayacaksınız.
İç içe tuples, işlemlerin sırasını geçersiz kılmak için parens kullanılarak oluşturulabilir.
((1,2),3) == (,)((,)1 2)3
Tüm sözdizimsel şekeri Haskell'den çıkarma arayışımızın bir parçası olarak sizden, sözdizimsel şekeri Haskell'in konuşmalarından da kaldıran bir program yazmanızı isteyeceğim.
Programınız bir dize, bir dizi veya şekerli bir dize temsil eden bir dize almalı ve "şekersiz" bir dize temsil eden bir dize vermelidir. Giriş tuples'lerinde sadece pozitif tamsayılar veya diğer tuples'ler bulunacaktır.
Burada golf oynadığımız için çıktılarınız kısa olmalı. Gereksiz içermemelidir
Spaces. Boşluklar yalnızca bir tuple işlevinin argümanlarını ayırmak için kullanılmalı ve bir
)
veya daha önce görünmemelidir.(
Parantez. Parantezler, yalnızca tuple işlevleri oluşturulurken veya yuvaları yerleştirirken kullanılmalıdır.
Bu bir kod golfü sorusudur, bu yüzden cevaplar daha az byte'ın daha iyi olmasıyla byte olarak puanlanacaktır.
Test durumları
(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))
ve (1,(2,3),4)
.