Votre tâche consiste à sortir la chaîne exacte
The Jabberwocky
sans prendre d'entrée. Les règles normales d'entrée et de sortie s'appliquent, de sorte que les fonctions et les programmes sont autorisés.
Bien sûr, il y a un piège, ce ne serait pas amusant sans un piège. Votre programme, une fois dépourvu de caractères non alphabétiques, doit commencer le poème The Jabberwocky (insensible à la casse). Pour démarrer le poème, il doit s'agir d'une sous-chaîne continue du poème commençant au début. La chaîne vide va bien (même si vous ne réussirez probablement pas très bien).
Voici le texte pour référence:
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe
Voici un programme que vous pouvez utiliser pour tester cette propriété.
Si vous êtes à court de poèmes, vous ne pouvez utiliser aucun caractère alphabétique supplémentaire.
Les caractères alphabétiques sont des caractères a
- z
et A
- Z
voici la liste complète:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Notation
Votre programme sera noté en fonction du nombre d'octets non alphabétiques utilisés, le nombre étant meilleur.
Voici un programme Haskell qui apporte des réponses. (Cela suppose que les entrées sont valides)
Exemple de programme
Le programme suivant serait valide:
twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe""""""""
ret h eb or o g o ve sa n dthemomerAthsoutgrabebewaretheJABBERWOCKmysonthe)(*)()((*98980908(()*(jawsthatbit
Lorsqu'il est réduit aux caractères alphabétiques, il est:
twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit
Qui correspond au premier bit du poème (insensible à la casse).
Ce programme marquerait 59 car il contient les caractères non alphabétiques suivants:
&*77812 """"""""
)(*)()((*98980908(()*(
la source
Jabberwocky
(sans article), alors que le nom de la bête estthe Jabberwock
(sans -y ). Bien sûr, vous ne pouvez pas modifier la sortie requise maintenant, mais ...Réponses:
oOo CODE , score 0
Merci à Dennis d'avoir joué le code Brainfuck.
Essayez-le en ligne!
J'ai de mauvaises nouvelles pour ce défi ... :(
oOo CODE est juste un encodage binaire de brainfuck qui utilise le cas d'une lettre pour chaque bit. Donc oui, puisque le poème est assez long (ou que le texte est assez court) pour couvrir un programme Brainfuck qui imprime
The Jabberwocky
(sans réellement essayer de jouer au golf), cela devient une réponse optimale triviale.la source
C, note
1047974Merci à @gastropner d'avoir abaissé le score à 79 et merci à @ wizzwizz4 de l'avoir abaissé à 74!
Essayez-le en ligne!
la source
//abcdefgh\n
1 moins de caractères que/*abcdefgh*/
?Fission 2 , score 3
Essayez-le en ligne!
Explication
Nous pouvons ignorer la plupart des lettres minuscules, elles fixent simplement l'énergie d'un atome à leur point de code.
La majuscule
R
est le point d'entrée du programme, car il crée un atome allant bien. Comme je le disais, on peut ignorer lee
."
Bascule ensuite en mode chaîne, qui affiche simplement tous les caractères rencontrés sur STDOUT, ce qui nous en donneThe Jabberwock
. Cela ne laisse que ley
. Nous pourrions utiliser ley
contenu à venir immédiatementy
, mais nous devrions alors gaspiller au moins un octet autre que lettre pour l’imprimer (!
) et éventuellement un autre pour mettre fin au programme.Au lieu de cela, nous attendons patiemment de
y
se présenter immédiatement avanto
dans le poème. Parce que cela nous permet d'utiliserO
ce qui imprime le caractère et détruit l'atome, terminant le programme. De cette manière, les seuls caractères autres que des lettres dont nous avons besoin sont l’espace et les deux guillemets.la source
Alice , score 7
Essayez-le en ligne!
Le
/
fait que l'IP se déplace en diagonale et rebondisse sur les bords, de sorte que les instructions réellement exécutées le soient"The "ono@
. Lan
commande (en mode ordinal) pousse la chaîne "Jabberwocky" si le haut de la pile est vide eto
affiche le haut de la pile.la source
Gelée , score
64Un programme complet imprimant le résultat
(en tant que lien monadique, il est imprimé
The Jabberwock
comme un effet secondaire et renvoie le caractèrey
)Insère les caractères
“ ””
dans un préfixe du poème qui a changé la casse.Cela fonctionne parce que:
Le dernier
h
avantSOUTGRABEBEWARE“The Jabberwock”m”y
est (du moins au moment de l’écriture!) Un atome indéfini, ce qui en fait un nouveau lien qui prend l’entrée par défaut de0
et exécute des fonctions monadiquesSOUTGRABEBEWARE
qui donnent1
(voir ci-dessous).1“The Jabberwock”m
effectue ensuitem
, le découpage modulo,"The Jabberwock"
avec une taille de tranche de1
, cédant"The Jabberwock"
.La fin
”y
étant une nouvelle chaîne constante principale, Jelly imprime cette liste de caractères puis renvoie le caractèrey
. Puisqu'il s'agit maintenant de la fin du programme, celle-ci est ensuite imprimée.Précédent 6 byter:
Essayez-le en ligne!
Les six caractères non-poèmes constituent un saut de ligne
“ ”1“
.Alternative 6s:
la source
m1“y
? Il imprime toujoursThe Jabberwock
et commence par un sous-ensemble du poèmem1“y
(ou il pourrait êtrem1”y
) est nécessaire parce que nous devons imprimerThe Jabberwocky
, pasThe Jabberwock
.Fusain , score 3
Essayez-le en ligne!
Inséré les trois personnages:
⎚ ⌈
... ça marche aussi avec tout le poème .
Comment?
la source
Ruby (
-p
), Score 12Essayez-le en ligne!
Abuser de tous les commentaires!
Avec le
-p
drapeau, ruby imprimera tout ce qui est stocké dans$_
. Nécessite une seule ligne de n'importe quelle entrée.la source
-p
ici, à cause de la ligne de saisie requise. "Votre tâche consiste à sortir la chaîne exacteThe Jabberwocky
sans prendre d’entrée."-p
est un indicateur de ligne de commande, pas une entrée.Fusain , score:
54Essayez-le en ligne! Edit: 1 octet enregistré grâce à @ ASCII uniquement. Explication: Se traduit par le code détaillé suivant:
la source
Foo , score 5
Essayez-le en ligne!
la source
> <> , Note:
1312Essayez-le en ligne!
Vérification et notation .
Renvoie immédiatement vers la deuxième ligne, ce qui pousse "The Jabberwockmy" en sens inverse de la pile.
$~
saute l'excédentm
et>ro<
imprime la pile entière en l'inversant au préalable.la source
Retina 0.8.2 , score:
212018161386Essayez-le en ligne! Edit: Score réduit de 2 grâce à @MartinEnder.
la source
*
place de$*
).C, note 23
Essayez-le en ligne!
la source
Yabasic , 13
Merci pour la réponse de Ruby à Pavel!
Essayez-le en ligne!
la source
VBA, score 5
Exécuter dans la fenêtre immédiate:
Comment ça marche:
-
-
-
-
-
1 point d'interrogation, 1 espace et 3 doubles guillemets. VBA voit cela comme
?"" & "The Jabberwock" & "" & "y"
ou?"The Jabberwocky"
la source
Haskell , score 12
Essayez-le en ligne!
Définit une fonction sans argument
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware :: String
dont la sortie est"The Jabberwocky"
.la source
Java (OpenJDK 9) , score 11
Essayez-le en ligne!
Crédits
la source
()
det
(inutiliséVoid
paramètre null), et en retirant le premiert
du commentaire.<s>16</s> 14
je préfère, comme toujours sur tout réseau StackExchange pour fournir une réponse finale. Les modifications elles-mêmes sont répertoriées dans la page de révision , ce qui permet à tout le monde de voir facilement les modifications effectives et la façon dont la réponse a évolué au fil du temps, plutôt que de mettre toutes les informations passées et actuelles dans un seul et même poste illisible.PowerShell , Score:
1910Essayez-le en ligne!
Réponse Ruby du port de Pavel . Merci à Jo King pour -9 points.
Les chaînes sont
+
concaténées ensemble. Une fois les commentaires supprimés et le code analysé, PowerShell voit ceci'The Jabberwock'+'y'
. Cette chaîne est laissée sur le pipeline et la sortie est implicite.la source
The
etJabberwock
en une seule chaîne? Essayez-le en ligne!Gelée , score: 8
Essayez-le en ligne!
Compresse simplement la chaîne et est une chaîne vide lorsque tous les caractères non alphabétiques sont supprimés. De manière ennuyeuse, la forme comprimée la plus courte
“81Iȯd»
comporte des caractères alphabétiques, qui ne sontt
ni l'un ni l'autre.w
la source
Stax , 11
Exécuter et déboguer en ligne!
Juste un littéral de chaîne compressé qui est à son tour emballé.
la source
05AB1E , score 14
Essayez-le en ligne!
la source
Toile , marquer 5
Essayez-le ici!
la source
SOGL V0.12 , score 9
Essayez-le ici!
la source
Pip , score 5
Essayez-le en ligne!
Heureusement, les lettres minuscules dans Pip sont toutes des variables, qui sont des no-ops dans les expressions elles-mêmes. La partie intéressante du code:
Le scanner se brise
OOD
commeO
suit parOD
.OD
est une variable non définie, évaluée comme nulle (falsey); nous avons ensuite logique - ou ceci avec"The Jabberwock"
, et leO
sort sans nouvelle ligne.Chaîne à caractère unique
y
. Comme c'est la dernière expression du programme, elle est imprimée.la source
SmileBASIC, score 10
Cela a été assez directement tiré de la réponse de Yabasic, et
comme SB est une meilleure langue,nous pouvons la raccourcir en utilisant des étiquettes plutôt que des commentaires, ce qui élimine la nécessité de certains sauts de ligne.Il existe également cette solution alternative, pour la même taille:
Une étiquette dans une expression est traitée comme une chaîne. (
@my == "@my"
), si vous prenez le caractère 2, vous obtenez "y".la source
C (gcc) , note 58
Le fait utile que les // commentaires de style + newlines sont moins chers que les anciens est directement lié au commentaire de @ wizzwizz4 pour la réponse de @ Steadybox .
L'indicateur -m32 est requis.
Le nom long de la fonction à appeler peut amener certains à être d'humeur délirante, tandis que d'autres pourraient à juste titre trouver de telles objections mimsy; à la fin, nous devons tous écouter le chant de la sirène de faibles scores.
Essayez-le en ligne!
la source
Lot, score
1511Fondamentalement juste
echo The Jabberwocky
avec des variables et des étiquettes inutilisées.Ancienne version (score 24):
Nécessite que le code soit enregistré dans un fichier nommé
n.bat
et exécuté à partir du même répertoire.Version alternative qui peut avoir n'importe quel nom (score 27):
Explication (avec les variables supprimées):
la source
Perl 5, sous-programme, score 11
mais avec le caractère \ x86 (
v134
) au lieu du X.(perlsub dit "La signature fait partie du corps d'un sous-programme. Normalement, le corps d'un sous-programme est simplement un bloc de code calé.")
la source
y
?Ruby , 9 octets non alphabétiques
Essayez-le en ligne!
Version golfée (pour la lisibilité):
Utilise quelques variables longues et inutiles. En ruby, vous pouvez placer
whatever_you_want=
une expression avant une expression, qui retournera toujours cette expression, avec pour seul effet secondaire de créer une variable au nom étrange.la source
Brainfuck auto-modificateur , score 16
Essayez-le en ligne!
Explication
Initialement, la bande est configurée comme suit:
<[<<]
>
[.>]
>>.
la source
Fission , note 6
Essayez-le en ligne!
la source