COBOL è una lingua molto antica, al momento in cui scrivo ha 58 anni. È così vecchio, infatti, che ha una stranezza molto interessante: i primi sei caratteri di ogni riga sono commenti.
Perché chiedi questo? Bene, quei 6 personaggi dovevano essere usati come numeri di riga, ai tempi in cui i programmi non erano completamente digitali e digitati su un computer.
Inoltre, il settimo carattere potrebbe far parte solo di un set molto piccolo (di solito è *
necessario commentare la riga o uno spazio per separare il numero di riga dal codice)
Ma cosa succede se si utilizza un sistema più digitale e si desidera solo il programma non elaborato?
Il sistema dei commenti
Esistono due tipi di commenti in COBOL: commenti di riga e commenti di "numero di riga" di cui sopra.
I numeri di riga senza commenti sono semplici: basta togliere i primi sette (sei più uno spazio singolo) da ogni riga.
000000 apple
000001 banana
celery donuts
potrebbe diventare:
apple
banana
donuts
I commenti in linea lo rendono un po 'più difficile. Un commento di riga viene avviato con un asterisco *
posizionato nella settima posizione del carattere sulla riga, in questo modo:
000323* this is a comment
Questo non è un commento di riga:
*00000 this isn't a comment
Per rimuovere il commento da un commento di riga, basta rimuovere l'intera riga.
Un esempio di "programma" commentato:
000000 blah blah
000001* apples
000002 oranges?
000003* yeah, oranges.
000*04 love me some oranges
La versione non commentata:
blah blah
oranges?
love me some oranges
In altre parole, per rimuovere il commento da una stringa, rimuovere i primi sei caratteri di ogni riga, quindi restituire tutti tranne il primo carattere di ogni riga che non inizia con una stella.
La sfida
Creare un programma o una funzione che accetta un programma commentato e restituisce la sua variante non commentata.
chiarimenti
- Gli asterischi (
*
) non si troveranno mai al di fuori dei primi sette caratteri di una riga (non ti stiamo chiedendo di verificare la sintassi) - Ogni riga avrà sempre almeno 7 caratteri.
- Puoi assumere che il settimo carattere sia sempre un asterisco o uno spazio.
- L'input o l'output possono essere una matrice o un elenco.
- Devono essere gestiti solo caratteri ASCII stampabili (più newline).
- È possibile eseguire l'output con una nuova riga finale. Puoi anche supporre che l'input avrà una nuova riga finale, se lo desideri.
punteggio
Dato che si tratta di code-golf , la risposta con il minor numero di byte vince!
NOTA BENE: In realtà non conosco COBOL e non pretendo di farlo. Se una delle affermazioni su COBOL che ho formulato in questa domanda sono errate, non mi assumo alcuna responsabilità.
*
. È una coincidenza?