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, яку я висунув у цьому запитанні, є невірною, я не несу відповідальності.
*
. Це збіг?
key:{key:{key:length,key:length}}
. Смугає всі форматування даних та вводить дані.