In particolare, utilizzare ciascuno di questi simboli almeno una volta nel codice sorgente:
! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
I simboli all'interno di commenti, valori letterali a stringa, regexps (o qualsiasi altro tipo di valore letterale ecc.) Non contano (ma i loro delimitatori come /**/
o ""
contano).
Il programma non dovrebbe eseguire alcuna azione. Deve solo compilare e non fare nulla quando eseguito.
Se per qualche motivo alcuni dei simboli non possono essere utilizzati nella lingua di tua scelta, spiegalo rigorosamente (cosa e perché devono essere esclusi).
Aggiornamento: alcune risposte hanno usato simboli con espressioni regolari. Lo considererei un po 'problematico, è la stessa cosa che inserirli in valori letterali o commenti di stringhe (è per questo che ho inserito ecc. In tale requisito). Per favore, prova senza questo. Ho anche aggiornato il requisito sopra.
Aggiornamento: il codice più corto vince (etichettato come code-golf ). Come suggerito, molto probabilmente avremo bisogno di alcuni criteri di tie-breaker. Suggerisco che se c'è un pareggio, quello vincente è quello in cui i simboli ASCII appaiono il più ordinati possibile. Formalmente: filtra la prima occorrenza di ciascuno dei simboli elencati da un programma. Ciò comporterà una permutazione sui simboli elencati. Vince il programma con meno numero di inversione della sua permutazione.
Aggiornamento: sarei felice di vedere alcune / più soluzioni in linguaggi normali / tradizionali, come C (++), Java, Scala, Haskell, ecc.
#
, @
e `sono al di fuori non è legale di qualsiasi tipo di letterale
@%
né il backtick può apparire in c se non come parte di un letterale (in versioni sufficientemente nuove di c%
può apparire in digraph). (e#
appare solo nelle direttive del preprocessore, ma dovremo solo conviverci)? Cioè, sto chiedendo che l'approccio di Matt sia reso esplicitamente legale.