Haskell ma krotki, które można zapisać jako
(a,b,c)
Jest to jednak tylko cukier syntaktyczny
(,,)a b c
Ogólnie przyjętą n krotka mogą być utworzone z n-1 ,
S pomiędzy (
... )
następnie jego elementów oddzielonych przestrzeni. Na przykład 7-krotkę (1,2,3,4,5,6,7)
można utworzyć przez
(,,,,,,)1 2 3 4 5 6 7
Ponieważ Haskell nie ma 1-krotek, nie można ich utworzyć. Nie będziesz również ponosić odpowiedzialności za puste krotki.
Zagnieżdżone krotki można utworzyć za pomocą parens, aby zastąpić kolejność operacji.
((1,2),3) == (,)((,)1 2)3
W ramach naszego dążenia do usunięcia całego cukru syntaktycznego z Haskell poproszę cię o napisanie programu, który usunie również cukier syntaktyczny z krotek Haskella.
Twój program powinien pobrać krotkę, tablicę lub łańcuch reprezentujący krotkę cukrową i powinien wypisać łańcuch reprezentujący krotkę „bez cukru”. Krotki wejściowe zawsze zawierają tylko dodatnie liczby całkowite lub inne krotki.
Ponieważ tutaj gramy w golfa, twój wynik powinien być krótki. Nie powinien zawierać niepotrzebnych
Przestrzenie. Spacje powinny być używane tylko do oddzielania argumentów funkcji krotki i nie powinny pojawiać się po a
)
lub przed a(
Zdanie wtrącone. Nawiasów należy używać tylko podczas tworzenia funkcji krotek lub zagnieżdżania krotek.
To jest pytanie w golfa kodu, więc odpowiedzi będą liczone w bajtach, przy czym mniej bajtów będzie lepszych.
Przypadki testowe
(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))
i (1,(2,3),4)
.