Em particular, use cada um destes símbolos pelo menos uma vez no seu código-fonte:
! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Símbolos dentro de comentários, cadeias literais, regexps (ou qualquer outro tipo de literal etc.) não contam (mas seus delimitadores, como /**/
ou ""
contam).
O programa não deve executar nenhuma ação. Ele só precisa compilar e não fazer nada quando executado.
Se, por algum motivo, alguns dos símbolos não puderem ser usados no idioma de sua escolha, explique-o rigorosamente (o que e por que deve ser excluído).
Atualização: algumas respostas usavam símbolos dentro de expressões regulares. Eu consideraria isso um pouco problemático, é a mesma coisa que colocá-los em literais de string ou comentários (é por isso que coloquei etc. nesse requisito). Por favor, tente sem isso. Também atualizei o requisito acima.
Atualização: o código mais curto vence (marcado como código-golfe ). Como sugerido, provavelmente precisaremos de alguns critérios de desempate. Sugiro que, se houver um empate, o vencedor é aquele em que os símbolos ASCII aparecem o mais ordenados possível. Formalmente: filtre a primeira ocorrência de cada um dos símbolos listados em um programa. Isso resultará em uma permutação nos símbolos listados. O programa com menor número de inversões de sua permutação vence.
Atualização: ficaria feliz em ver algumas / mais soluções em linguagens regulares / comuns, como C (++), Java, Scala, Haskell, etc.
#
, @
e `não são legais fora de qualquer tipo de literal
@%
nem o backtick pode aparecer em c, exceto como parte de um literal (em versões suficientemente novas de c%
pode aparecer em dígitos). (e#
só aparece nas diretrizes do pré-processador, mas teremos que conviver com isso)? Ou seja, estou pedindo que a abordagem de Matt seja explicitamente legal.