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