Escriba un quine que consista en palabras reales en inglés separadas por espacios individuales. Una "palabra" se define como una cadena que contiene solo letras minúsculas y mayúsculas ( /[a-zA-Z]+/
en expresiones regulares). Para ser "real", su palabra debe ser reconocida por el diccionario oficial de Scrabble .
Estoy usando el diccionario Scrabble ya que da una respuesta definitiva sobre qué es y qué no es válido. Hay demasiadas áreas grises con un diccionario normal. Tenga en cuenta que "A" e "I" (sin mencionar "quine") no son palabras válidas de scrabble.
Dado que escribir un quine solo usando letras y espacios es casi imposible en la mayoría de los lenguajes de programación, tiene la opción de reemplazar los espacios individuales entre palabras con un carácter de su elección. También tiene la opción de agregar caracteres al frente de la primera palabra y al final de la última palabra. Estos caracteres agregados pueden ser cualquier cosa (incluidas líneas nuevas y no ASCII) excepto letras (az, AZ) . Sin embargo, hay una penalización por agregarlos (ver Puntuación).
Detalles
- Como de costumbre, los quines pueden no leer o acceder a su propio código fuente. (Diría que el comando Q de HQ9 + viola esto).
- La salida debería ir a stdout o una alternativa similar. No hay entrada
- Las palabras no necesitan estar en mayúscula correctamente. Pueden tener mayúsculas y minúsculas en cualquier lugar. La secuencia de palabras no necesita tener ningún sentido.
- Ninguna palabra se puede usar más de 3 veces en su programa. Las palabras con mayúsculas diferentes siguen siendo la misma palabra (por ejemplo, 'PERRO', 'perro' y 'dOg' son todas la misma palabra).
- El uso de lenguajes como PHP o HTML que pueden capturar sus contenidos se considera una laguna trivial y no está permitido.
- El programa debe contener al menos una palabra.
Tanteo
Su puntaje es el número de "palabras reales" en su programa más estas penalizaciones:
- +1 por cada espacio que fue reemplazado por otro personaje
- n n por cada n caracteres que agregaste antes de la primera palabra (sí, eso es n al poder n)
- n n por cada n caracteres que agregaste después de la última palabra
Por ejemplo, el programa
We all LIKE PROgraMmING
puntuaría 4 porque contiene 4 palabras; no se agregaron caracteres ni se reemplazaron espacios. Su salida, por supuesto, sería We all LIKE PROgraMmING
.
El programa
!We@all LIKE#PROgraMmING- =
puntuaría 4 + 2 + 1 + 27 = 34; 4 para las palabras, 2 para los espacios reemplazados, 1 para !
el frente y 27 para - =
el final. Su salida, por supuesto, sería !We@all LIKE#PROgraMmING- =
.
El puntaje más bajo gana. Tiebreaker va a la respuesta con la menor cantidad de puntos de penalización. Si todavía hay un empate, gana la respuesta más votada.
fuente
Respuestas:
golfscript, 8 palabras + 8 símbolos =
2016 (3?)Las palabras son solo un relleno, el núcleo es un pequeño núcleo de quine:
Duplica y evalúa una función que solo agrega las instrucciones para duplicarse y evaluarse a sí misma. Cuando se imprime una función, se encadena automáticamente. Esta es la quine más pequeña que hace algo .
O podríamos usar una función literal que nunca se evalúa. Pero se siente como hacer trampa ...
fuente
{a`b"x.y~z"c}x.y~z
{whatever}
violación de la norma demasiado trivial ( "Uso de lenguajes como PHP o HTML que se acaba de gato fuera su contenido se considera una laguna trivial y no está permitido.")> <> , 25 palabras + (22 + 1 1 + 1 1 ) extra =
5749Oh dios, mi cerebro.
Dado que las reglas establecen "No hay entrada", para que este programa funcione, deberá canalizar en un archivo vacío.
Ah y sí,
brr
es una palabra Scrabble válida, como sontsktsk
ypfft
.Explicación
En primer lugar, las siguientes palabras son no operativas:
Esto es por dos razones:
abcdefl
números de inserción (10, 11, 12, 13, 14, 15 y la longitud de la pila, respectivamente). Además,i
empuja -1 si se cumple EOF, ya que no hay entrada.p
comando muestra tres caracteresv,y,x
y lugaresv
en la posiciónx,y
.Sí,> <> te permite modificar el código fuente sobre la marcha. Sin embargo, realmente no hacemos uso de eso, ya que solo necesitamos el
p
popping.Si nos deshacemos de estos no-ops, obtenemos:
De manera similar, la
laced app
parte deplaced apple
y lae alp
parte deapple alp
también son no-ops, y larr
debrr
simplemente invierte la pila dos veces, lo que también podemos eliminar:Finalmente, ¡algo que parece un programa> <> normal! La idea es utilizar el estándar> <> quine, que funciona así:
'
inicia el análisis de cadenas, empujando cada char hasta que lleguemos a otro'
'
nuevo en la inicial y detenemos el análisis de cadenas. El resultado es que hemos introducido todos los caracteres del programa (excepto el inicial'
) en la pila.Entonces sucede lo siguiente:
fuente
i
.Pollo , 1 palabra
Normalmente no estoy en esolangs, pero este parecía perfecto para esto. Creo que esta es una verdadera quine:
Empuja 1 pollo a la pila. Luego se muestra la pila.
fuente
R, 2 palabras + 1 reemplazo + 1¹ final = 4
Los objetos que no están asignados a nada solo se imprimen en stdout. Como una expresión es un objeto, se imprime el siguiente código:
Presentación previa, 5 puntos:
fuente
Python 2, 58 = 37 palabras + 21 signos de puntuación
Con algunas nuevas líneas agregadas:
La restricción de tres usos por palabra fue lo que hizo que este fuera difícil de escribir. Quería usar la cadena con todo el código más de 3 veces, y cada cadena tenía que aislarse con
if else and or
operadores de los que solo tenía un suministro limitado.fuente
Julia, 1 palabra + 1¹ precedente = 2
Julia tiene objetos llamados símbolos que se definen usando un precedente
:
. Al igual que mi solución R, esto solo se imprime cuando se envía.fuente
Línea de comando DOS, 10
Error quine, no prohibido parece
fuente
&
codifica todo el código y deja de&
una palabra, sin embargo?&
son dos símbolos. 5 (palabras) + 1 (final) + 2 ^ 2Encantamientos rúnicos , puntaje 4 + 3 + 1 1 +1 1 = 9
Pruébalo en línea!
Palabras:
hot ox not knot
(4)Reemplazos:
3 4 +
(3)Antes:
"
(1)Después:
@
(1)Todos los personajes
GNOQWghtxz
son no-op en Runic (así como espacio y punto, pero más espacios no ayudan a puntuar). Incluyendo elX
yk
requerido para la funcionalidad, esto da la siguiente lista de palabras disponibles:Elegí la cereza en función de las necesidades del espacio en el que estaba entrando y haciendo que parezca divertido.
Al eliminar todos los caracteres NOP se obtiene la siguiente quine:
Pruébalo en línea!
fuente
eh? - 1 palabra + 1 ** 1/1 ^ 1 = 1 carácter después de la palabra = 2 puntuación total.
Ouch!
es una quine válida en eh?Ejecútelo como
pythuhn.py Ouch!
, y no puede haber un archivo nombradoOuch!
en el directorio actual.fuente