COBOL jest bardzo starym językiem, w chwili pisania ma 58 lat. Jest tak stary, że ma bardzo ciekawe dziwactwo: pierwsze sześć znaków każdej linii to komentarze.
Dlaczego to pytasz? Cóż, te 6 znaków miało być używanych jako numery linii, w czasach, gdy programy nie były całkowicie cyfrowe i zostały napisane na komputerze.
Ponadto siódmy znak może być tylko częścią bardzo małego zestawu (zwykle jest *
to komentarz linii lub spacja w celu oddzielenia numeru linii od kodu)
Ale co, jeśli korzystasz z bardziej cyfrowego systemu i chcesz tylko surowy program?
System komentarzy
W języku COBOL istnieją dwa rodzaje komentarzy: komentarze do linii i wspomniane komentarze do „numeru linii”.
Odkomentowanie numerów linii jest proste: wystarczy usunąć pierwsze siedem znaków (sześć plus jedna spacja) z każdej linii.
000000 apple
000001 banana
celery donuts
stanie się:
apple
banana
donuts
Komentarze liniowe utrudniają to. Komentarz do linii rozpoczyna się gwiazdką *
umieszczoną na siódmej pozycji znaku w linii, tak:
000323* this is a comment
To nie jest komentarz liniowy:
*00000 this isn't a comment
Aby anulować komentarz do komentarza, po prostu usuń całą linię.
Przykład skomentował „program”:
000000 blah blah
000001* apples
000002 oranges?
000003* yeah, oranges.
000*04 love me some oranges
Wersja bez komentarza:
blah blah
oranges?
love me some oranges
Innymi słowy, aby odkomentować ciąg, usuń pierwsze sześć znaków każdej linii, a następnie zwróć wszystkie oprócz pierwszego znaku każdej linii, która nie zaczyna się od gwiazdki.
Wyzwanie
Utwórz program lub funkcję, która pobiera skomentowany program i zwraca jego nieskomentowany wariant.
Wyjaśnienia
- Gwiazdki (
*
) nigdy nie zostaną znalezione nigdzie poza pierwszymi siedmioma znakami w linii (nie prosimy o weryfikację składni) - Każda linia zawsze będzie miała co najmniej 7 znaków.
- Możesz założyć, że siódma postać jest zawsze gwiazdką lub spacją.
- Dane wejściowe lub wyjściowe mogą być macierzą lub listą.
- Obsługiwane są tylko drukowalne znaki ASCII (plus nowa linia).
- Możesz generować z końcowym znakiem nowej linii. Możesz również założyć, że na wejściu pojawi się nowa linia, jeśli tak wybierzesz.
Punktacja
Ponieważ jest to golf golfowy , wygrywa odpowiedź z najmniejszą liczbą bajtów!
ZASTRZEŻENIE: W rzeczywistości nie znam języka COBOL i nie twierdzę. Jeśli jakiekolwiek stwierdzenia dotyczące COBOL, które wypowiedziałem w tym pytaniu, są nieprawidłowe, nie biorę odpowiedzialności.
*
. Czy to przypadek?
key:{key:{key:length,key:length}}
. Usuwa wszystkie dane formatowania i dane do pisania.