W szczególności użyj każdego z tych symboli przynajmniej raz w kodzie źródłowym:
! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Symbole wewnątrz komentarzy, literałów łańcuchowych, wyrażeń regularnych (lub innych literałów itp.) Nie liczą się (ale ich ograniczniki, takie jak /**/
lub ""
liczą).
Program nie powinien wykonywać żadnych działań. Po prostu musi się skompilować i nic nie robić po uruchomieniu.
Jeśli z jakiegoś powodu niektóre symbole nie mogą być użyte w wybranym przez ciebie języku, wyjaśnij to rygorystycznie (co i dlaczego należy wykluczyć).
Aktualizacja: Kilka odpowiedzi używało symboli z wyrażeniami regularnymi. Uznałbym to za nieco problematyczne, jest to to samo, co umieszczenie ich w literałach lub komentarzach łańcuchowych (dlatego umieszczam itd. W tym wymaganiu). Spróbuj bez tego. Zaktualizowałem również powyższy wymóg.
Aktualizacja: Wygrywa najkrótszy kod (oznaczony jako golf golfowy ). Zgodnie z sugestią najprawdopodobniej będziemy potrzebować kryteriów rozstrzygających. Sugeruję, że w przypadku remisu wygrywa ten, w którym symbole ASCII pojawiają się w możliwie największej kolejności. Formalnie: odfiltruj pierwsze wystąpienie każdego z wymienionych symboli z programu. Spowoduje to permutację wymienionych symboli. Program z mniejszą liczbą inwersji jego permutacji wygrywa.
Aktualizacja: Byłbym szczęśliwy widząc niektóre / więcej rozwiązań w zwykłych / głównych językach, takich jak C (++), Java, Scala, Haskell itp.
#
, @
i `nie są poza prawną jakiejkolwiek dosłownym
@%
ani odwrót może pojawić się w c, chyba że jako część literału (w wystarczająco nowych wersjach c%
może pojawić się w digrafach). (i#
pojawia się tylko w dyrektywach preprocesora, ale będziemy musieli z tym żyć)? To znaczy, proszę, aby podejście Matta zostało wyraźnie zatwierdzone.