COBOL es un idioma muy antiguo, al momento de escribirlo tiene 58 años. Es tan viejo, de hecho, que tiene una peculiaridad muy interesante: los primeros seis caracteres de cada línea son comentarios.
¿Por qué es esto, preguntas? Bueno, esos 6 caracteres estaban destinados a ser utilizados como números de línea, en aquellos días en que los programas no eran completamente digitales y se escribían en una computadora.
Además, el séptimo carácter solo podría ser parte de un conjunto muy pequeño (generalmente es *
comentar la línea o un espacio para separar el número de línea del código)
Pero, ¿qué pasa si estás en un sistema más digital y solo quieres el programa en bruto?
El sistema de comentarios
Hay dos tipos de comentarios en COBOL: comentarios de línea y los comentarios de "número de línea" antes mencionados.
Descomentar los números de línea es simple: simplemente quite los primeros siete caracteres (seis más un espacio) de cada línea.
000000 apple
000001 banana
celery donuts
se convertiría:
apple
banana
donuts
Los comentarios de línea lo hacen un poco más difícil. Se inicia un comentario de línea con un asterisco *
colocado en la posición del séptimo carácter en la línea, así:
000323* this is a comment
Este no es un comentario de línea:
*00000 this isn't a comment
Para descomentar un comentario de línea, simplemente elimine toda la línea.
Un ejemplo comentado "programa":
000000 blah blah
000001* apples
000002 oranges?
000003* yeah, oranges.
000*04 love me some oranges
La versión no comentada:
blah blah
oranges?
love me some oranges
En otras palabras, para descomentar una cadena, elimine los primeros seis caracteres de cada línea, luego devuelva todos menos el primer carácter de cada línea que no comience con una estrella.
El reto
Cree un programa o función que tome un programa comentado y devuelva su variante no comentada.
Aclaraciones
- Los asteriscos (
*
) nunca se encontrarán en ningún lugar fuera de los primeros siete caracteres de una línea (no le pedimos que verifique la sintaxis) - Cada línea siempre tendrá al menos 7 caracteres.
- Puede suponer que el séptimo carácter es siempre un asterisco o un espacio.
- La entrada o salida puede ser una matriz o una lista.
- Solo se deben manejar los caracteres ASCII imprimibles (más la nueva línea).
- Puede generar una nueva línea final. También puede suponer que la entrada tendrá una nueva línea final, si así lo desea.
Puntuación
Como se trata de código de golf , ¡la respuesta con la menor cantidad de bytes gana!
DESCARGO DE RESPONSABILIDAD: en realidad no conozco COBOL y no pretendo hacerlo. Si alguna de las afirmaciones sobre COBOL que he hecho en esta pregunta es incorrecta, no me hago responsable.
*
. ¿Es esto una coincidencia?