Su tarea es generar la cadena exacta
The Jabberwocky
sin tomar entrada. Se aplican las reglas normales de entrada y salida, por lo que se permiten funciones y programas.
Por supuesto que hay una trampa, no sería divertido sin una captura. Su programa, cuando se despoja de caracteres no alfabéticos, debe comenzar el poema The Jabberwocky (no distingue entre mayúsculas y minúsculas). Para comenzar el poema debe ser una subcadena continua del poema que comienza desde el principio. La cadena vacía está bien (aunque probablemente no puntuarás muy bien).
Aquí está el texto de referencia:
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe
aquí hay un programa que puede usar para probar esta propiedad.
Si te quedas sin poema para usar, no puedes usar ningún carácter alfabético adicional.
Los caracteres alfabéticos son personajes a
- z
y A
- Z
aquí está la lista completa:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Tanteo
Su programa se puntuará en la cantidad de bytes no alfabéticos utilizados, y menos serán mejores.
aquí hay un programa de Haskell que califica las respuestas. (Esto supone que las entradas son válidas)
Programa de ejemplo
El siguiente programa sería válido:
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
Cuando se reduce a caracteres alfabéticos, es:
twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit
Que coincide con el primer bit del poema (sin distinción entre mayúsculas y minúsculas).
Este programa obtendría un puntaje de 59 porque contiene estos caracteres no alfabéticos:
&*77812 """"""""
)(*)()((*98980908(()*(
fuente
Jabberwocky
(sin artículo), mientras que el nombre de la bestia esthe Jabberwock
(sin -y ). Por supuesto, no puede cambiar la salida requerida ahora, pero ...Respuestas:
oOo CODE , puntaje 0
Gracias a Dennis por jugar al código Brainfuck.
Pruébalo en línea!
Tengo malas noticias para este desafío ... :(
oOo CODE es solo una codificación binaria de brainfuck que utiliza el caso de una letra para cada bit. Entonces sí, dado que el poema es lo suficientemente largo (o la salida lo suficientemente corta) para cubrir un programa Brainfuck que imprime
The Jabberwocky
(sin realmente tratar de jugarlo), esta se convierte en una respuesta trivial óptima.fuente
C, puntaje
1047974¡Gracias a @gastropner por bajar el puntaje a 79 y gracias a @ wizzwizz4 por bajarlo aún más a 74!
Pruébalo en línea!
fuente
//abcdefgh\n
serían 1 caracteres menos que/*abcdefgh*/
?Fisión 2 , puntaje 3
Pruébalo en línea!
Explicación
Podemos ignorar la mayoría de las letras minúsculas, solo establecen la energía de un átomo en su punto de código.
La mayúscula
R
es el punto de entrada del programa, ya que crea un átomo hacia la derecha. Como dije, podemos ignorar ele
. Luego"
alterna el modo de cadena, que simplemente imprime todos los caracteres que encuentra en STDOUT, lo que nos daThe Jabberwock
. Eso solo deja ely
. Podríamos usar ely
que aparece inmediatamentey
, pero luego tendríamos que desperdiciar al menos un byte que no sea letra al imprimirlo (!
) y posiblemente otro al finalizar el programa.En cambio, esperamos pacientemente
y
que aparezca inmediatamente anteso
en el poema. Porque eso nos permite usar elO
que imprime el personaje y destruye el átomo, finalizando el programa. De esta manera, los únicos caracteres que no son letras que necesitamos son el espacio y las dos comillas.fuente
Alicia , puntaje 7
Pruébalo en línea!
Esto
/
hace que la IP se mueva diagonalmente y rebote en los bordes, por lo que las instrucciones realmente ejecutadas son"The "ono@
. Eln
comando (en modo ordinal) empuja la cadena "Jabberwocky" si la parte superior de la pila está vacía yo
genera la parte superior de la pila.fuente
Gelatina , puntuación
64Un programa completo que imprime el resultado
(como un enlace monádico, imprime
The Jabberwock
como un efecto secundario y devuelve el caráctery
)Inserta los personajes
“ ””
en un prefijo del poema con mayúsculas y minúsculas.Esto funciona porque:
El último
h
antesSOUTGRABEBEWARE“The Jabberwock”m”y
es (¡al menos al momento de escribir!) Un átomo indefinido, lo que hace que todo se convierta en un nuevo enlace que toma la entrada predeterminada0
y realiza algunas funciones monádicasSOUTGRABEBEWARE
, que producen1
(ver más abajo).1“The Jabberwock”m
luego realizam
, corte de módulo,"The Jabberwock"
con un tamaño de corte de1
, cediendo"The Jabberwock"
.El final
”y
es una nueva cadena constante líder, por lo que Jelly imprime esa lista de caracteres y luego produce el caráctery
, y como ahora es el final del programa, esto se imprime.6 byter anterior:
Pruébalo en línea!
Los seis personajes que no son poemas son un plus de nueva línea
“ ”1“
.Alternativa 6s:
fuente
m1“y
? Todavía se imprimeThe Jabberwock
y comienza con un subconjunto del poemam1“y
(o podría serm1”y
) es necesario porque debemos imprimirThe Jabberwocky
, noThe Jabberwock
.Carbón , puntaje 3
Pruébalo en línea!
Insertó los tres caracteres:
⎚ ⌈
... también funciona con todo el poema .
¿Cómo?
fuente
Ruby (
-p
), puntaje 12Pruébalo en línea!
¡Abusa de todos los comentarios!
Con la
-p
bandera, ruby imprimirá lo que esté almacenado$_
. Requiere una sola línea de cualquier entrada.fuente
-p
aquí, debido a la línea de entrada requerida. "Su tarea es generar la cadena exactaThe Jabberwocky
sin tomar entrada".-p
es un indicador de línea de comando, no una entrada.Carbón , puntaje:
54Pruébalo en línea! Editar: guardado 1 byte gracias a @ ASCII-only. Explicación: se traduce al siguiente código detallado:
fuente
Foo , puntaje 5
Pruébalo en línea!
fuente
> <> , Puntuación:
1312Pruébalo en línea!
Verificación y puntuación .
Inmediatamente redirige a la segunda línea, que empuja "The Jabberwockmy" en reversa a la pila.
$~
saca el excesom
e>ro<
imprime toda la pila, invirtiéndola de antemano.fuente
Retina 0.8.2 , puntaje:
212018161386Pruébalo en línea! Editar: Puntuación reducida en 2 gracias a @MartinEnder.
fuente
*
lugar de$*
).C, puntaje 23
Pruébalo en línea!
fuente
Yabasic , 13
¡Gracias por la respuesta de Ruby de @ Pavel!
Pruébalo en línea!
fuente
VBA, puntaje 5
Ejecutar en la ventana Inmediato:
Cómo funciona:
-
-
-
-
-
1 signo de interrogación, 1 espacio y 3 comillas dobles. VBA ve esto como
?"" & "The Jabberwock" & "" & "y"
o?"The Jabberwocky"
fuente
Haskell , puntuación 12
Pruébalo en línea!
Define una función de argumento cero
twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebeware :: String
cuya salida es"The Jabberwocky"
.fuente
Java (OpenJDK 9) , puntaje 11
Pruébalo en línea!
Créditos
fuente
()
at
(Void
parámetro nulo no utilizado ) y eliminando el iniciot
del comentario.<s>16</s> 14
que prefiero, como siempre en cualquier red StackExchange para proporcionar una respuesta final. Los cambios en sí se enumeran en la página de revisión , lo que facilita que todos puedan ver los cambios reales y cómo evolucionó la respuesta con el tiempo, en lugar de poner toda la información pasada y actual en una gran publicación ilegible.PowerShell , Puntuación:
1910Pruébalo en línea!
La respuesta de Ruby del puerto de Pavel . Gracias a Jo King por -9 puntos.
Las cadenas se
+
concatenan juntas. Una vez que se eliminan los comentarios y se analiza el código, PowerShell lo ve así'The Jabberwock'+'y'
. Esa cadena se deja en la tubería y la salida es implícita.fuente
The
yJabberwock
formar una sola cuerda? Pruébalo en línea!Gelatina , puntuación: 8
Pruébalo en línea!
Simplemente comprime la cadena y es una cadena vacía cuando se eliminan todos los caracteres que no son del alfabeto. Molestamente, la forma comprimida más corta
“81Iȯd»
tiene caracteres alfabéticos, ninguno de los cuales est
ow
fuente
Stax , 11
Ejecutar y depurar en línea!
Solo un literal de cadena comprimido que a su vez está empaquetado.
fuente
05AB1E , puntaje 14
Pruébalo en línea!
fuente
Lienzo , puntaje 5
Pruébalo aquí!
fuente
SOGL V0.12 , puntaje 9
Pruébalo aquí!
fuente
Pip , puntaje 5
Pruébalo en línea!
Afortunadamente, las letras minúsculas en Pip son todas variables, que no son opcionales en expresiones por sí mismas. La parte interesante del código:
El escáner se rompe
OOD
comoO
seguido porOD
.OD
es una variable indefinida, que se evalúa como nula (falsey); entonces lógico, o esto con"The Jabberwock"
, y loO
genera sin una nueva línea.Cadena de un solo carácter
y
. Como es la última expresión del programa, se imprime.fuente
SmileBASIC, puntaje 10
Esto fue tomado directamente de la respuesta de Yabasic, y
dado que SB es un mejor lenguaje,podemos acortarlo usando etiquetas en lugar de comentarios, lo que elimina la necesidad de algunos saltos de línea.También existe esta solución alternativa, para el mismo tamaño:
Una etiqueta dentro de una expresión se trata como una cadena. (
@my == "@my"
), entonces tomar el carácter 2 da "y".fuente
C (gcc) , puntaje 58
El hecho útil de que // los comentarios de estilo + las nuevas líneas son más baratas que las de estilo antiguo viene directamente del comentario de @ wizzwizz4 para la respuesta de @ Steadybox .
Se requiere la bandera -m32.
Algunos podrían verse humillados por el largo nombre de la función a llamar, mientras que otros podrían encontrar tales objeciones con mimos; al final, todos debemos escuchar la canción de sirena de bajos puntajes.
Pruébalo en línea!
fuente
Lote, puntaje
1511Básicamente solo
echo The Jabberwocky
con variables y etiquetas no utilizadas.Versión anterior (puntaje 24):
Requiere que el código se guarde en un archivo llamado
n.bat
y se ejecute desde el mismo directorio.Versión alternativa que puede tener cualquier nombre (puntaje 27):
Explicación (con variables eliminadas):
fuente
Perl 5, subrutina, puntaje 11
pero con el caracter \ x86 (
v134
) en lugar de la X.(Perlsub dice "La firma es parte del cuerpo de una subrutina. Normalmente, el cuerpo de una subrutina es simplemente un bloque de código entre paréntesis").
fuente
y
?Ruby , 9 bytes sin letra
Pruébalo en línea!
Versión de golf (para facilitar la lectura):
Utiliza algunas variables largas e inútiles. En ruby, puede poner
whatever_you_want=
antes de una expresión, y aún devolverá esa expresión, solo con el efecto secundario de crear una variable con un nombre extraño.fuente
Brainfuck auto modificable , puntaje 16
Pruébalo en línea!
Explicación
Inicialmente, la cinta se configura así:
Como queremos movernos al comienzo de la cadena, usamos␀ personaje.
<[<<]
tal que saltamos sobre el primerAhora podemos pasar alT con y no está lejos, podemos saltar directamente a él e imprimirlo
>
e imprime toda la cadena con[.>]
y desde que elegimos la subcadena donde el siguiente>>.
.fuente
Fisión , puntuación 6
Pruébalo en línea!
fuente