COBOL - очень старый язык, на момент написания ему 58 лет. На самом деле он настолько старый, что имеет очень интересную причуду: первые шесть символов каждой строки являются комментариями.
Вы спрашиваете, почему это? Ну, эти 6 символов были предназначены для использования в качестве номеров строк, в те времена, когда программы не были полностью цифровыми и печатались на компьютере.
Кроме того, седьмой символ может быть только частью очень маленького набора (обычно *
это закомментирует строку или пробел, чтобы отделить номер строки от кода)
Но что, если вы работаете в более цифровой системе и вам нужна просто необработанная программа?
Система комментариев
В языке COBOL есть два типа комментариев: комментарии к строкам и вышеупомянутые комментарии к номеру строки.
Раскомментировать номера строк просто: просто уберите первые семь (шесть плюс один пробел) символов из каждой строки.
000000 apple
000001 banana
celery donuts
станет:
apple
banana
donuts
Строка комментариев делает это немного сложнее. Комментарий к строке начинается со звездочки, *
расположенной в седьмой позиции символа в строке, например:
000323* this is a comment
Это не строчный комментарий:
*00000 this isn't a comment
Чтобы раскомментировать комментарий к строке, просто удалите всю строку.
Пример прокомментировал «программу»:
000000 blah blah
000001* apples
000002 oranges?
000003* yeah, oranges.
000*04 love me some oranges
Некомментированная версия:
blah blah
oranges?
love me some oranges
Другими словами, чтобы раскомментировать строку, удалите первые шесть символов каждой строки, а затем верните все, кроме первого символа каждой строки, которая не начинается со звезды.
Соревнование
Создайте программу или функцию, которая принимает закомментированную программу и возвращает ее незакомментированный вариант.
Разъяснения
- Звездочки (
*
) никогда не будут найдены нигде, кроме первых семи символов в строке (мы не просим вас проверять синтаксис) - Каждая строка всегда будет содержать не менее 7 символов.
- Вы можете предположить, что седьмой символ всегда является звездочкой или пробелом.
- Вход или выход может быть матрицей или списком.
- Только печатные символы ASCII (плюс перевод строки) должны быть обработаны.
- Вы можете выводить с последующим переводом строки. Вы также можете предположить, что ввод будет иметь завершающий символ новой строки, если вы того пожелаете.
счет
Поскольку это код-гольф , выигрывает ответ с наименьшим количеством байтов!
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: На самом деле я не знаю, COBOL и не претендую на. Если какие-либо претензии по поводу COBOL, которые я сделал в этом вопросе, неверны, я не несу никакой ответственности.
*
. Это совпадение?