Зокрема, використовуйте кожен із цих символів принаймні один раз у своєму вихідному коді:
! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Символи всередині коментарів, рядкових літералів, регулярних виразів (або будь-яких інших типів літералів тощо) не враховуються (але їх роздільники, такі як /**/
чи ""
не рахуються).
Програма не повинна виконувати жодних дій. Він просто повинен компілювати і нічого не робити під час запуску.
Якщо з якихось причин деякі символи не можуть бути використані на обраній вами мові, поясніть це суворо (що і чому потрібно виключити).
Оновлення: кілька відповідей, що використовуються символами, регулярними виразами. Я вважаю це трохи проблематичним, це те саме, що вводити їх у рядкові літерали чи коментарі (саме тому я вкладаю і т.д. у цю вимогу). Спробуйте без цього. Я також оновив вимогу вище.
Оновлення: найкоротший виграш коду (позначений як код-гольф ). Як передбачається, нам, швидше за все, знадобляться деякі критерії вимикання. Я пропоную, що якщо є нічия, то виграшним є той, у якому символи ASCII відображаються настільки упорядкованими, наскільки це можливо. Формально: відфільтруйте перше виникнення кожного із перерахованих символів з програми. Це призведе до перестановки перелічених символів. Програма з меншою числом інверсії перестановки виграє.
Оновлення: Я б радий побачити деякі / більше рішень у звичайних / основних мовах, таких як C (++), Java, Scala, Haskell тощо.
#
, @
і `не є законними поза всякого роду буквального
@%
а також backtick не може відображатися в c, за винятком частини літералу (у досить нових версіях c%
може відображатися в диграфах). (і#
відображається лише в директивах препроцесора, але нам просто доведеться з цим жити)? Тобто я прошу підхід Метта зробити явно законним.