Haiku ejecutable que genera un haiku [cerrado]


37

Rompecabezas:

Escriba un programa corto de tres líneas que:

  • tiene 5/7/5 sílabas por línea cuando se lee en voz alta
  • genera un haiku cuando se ejecuta.

Un ejemplo de un programa que tiene la estructura correcta, pero salida no haiku, es (Python):

>>> for x in range(3):
...     print "EXTERMINATE HUMANS"
... # I am a Dalek.
... 
EXTERMINATE HUMANS
EXTERMINATE HUMANS
EXTERMINATE HUMANS

(El comentario es un poco descabellado).

Esto se lee en voz alta como:

para x en el rango tres

imprimir EXTERMINAR HUMANOS!

Soy un dalek

Cualquier idioma es aceptable. Para fines de lectura en voz alta, los símbolos como !@#$%^&*()_+pueden ignorarse si lo desea, o pronunciarse en voz alta, admitiendo algo como Waka Waka Bang Splat . (Estoy seguro de que habrá una entrada de Perl como !***(!:, )(*@@@#, )_(*)!.)

Puntos extra si el código o la salida son especialmente divertidos, o especialmente zen.


Editar: si su idioma requiere repetitivo antes de que pueda hacer algo interesante ( #include <iostream>?), Entonces estoy feliz de ignorarlo.


He aceptado el haiku Common Lisp de Paul Richter porque me hizo reír durante unos buenos cinco minutos.

Mención de honor por la flexión creativa de reglas de Timwi (¿ salida del compilador ?) Y por la línea extremadamente memorable"Static void. I long for you."

Ahora esta pregunta termina;

Muchos más haikus esperan.

¡Continúa publicando!


Me gustaría sugerir fuertemente a evitar el uso de lenguas como un gato ...
MrZander

1
"Dalek Simulator" tiene 6 sílabas (o tal vez "# Dalek Simulator" tiene 7 sílabas). De cualquier manera, ¿no deberían ser 5 sílabas para la tercera línea?
Paul R

@PaulR: Tienes razón. Editado a algo que tiene 5 sílabas. ;)
Li-aung Yip

1
¿Bonificación para una solución de Piet?
Ugoren

1
@ugoren: Si puedes hacer que un programa de Piet parezca un haiku, estoy bastante seguro de que ganaría el Gran Premio. ;)
Li-aung Yip

Respuestas:


46

Lisp común

¡Los paréntesis son silenciosos!

Programa:

((lambda (&rest foo) 
   (list foo (cons 'truly foo) foo))
 'this 'is 'lisp 'haiku)

Leído como:

lambda and rest foo
list foo cons truly foo foo
this is lisp haiku

Salida:

((THIS IS LISP HAIKU) (TRULY THIS IS LISP HAIKU) (THIS IS LISP HAIKU))

Esto me hizo reír por unos buenos cinco minutos. ¡Bien hecho!
Li-aung Yip

78

DO#

Programa:

#warning Lonesome
class _{
    static void Eye(long forYou='
        ){ /* My program ends here. */ ;}}

Leer:

Warning: Lonesome class.
Static void. I long for you.
My program ends here.

Salida del compilador :

#warning: 'Lonesome'        (read: hash warning lonesome)
Empty character literal     (read: empty character lit’ral)
Newline in constant

14
¿ Salida del compilador ? Interpretación creativa de las reglas: me gusta. También es extrañamente zen ...
Li-aung Yip

2
Esto es poesía compiladora ... +1
Cristian Lupascu

66
Desearía poder votar esto más de una vez.
Gareth

@Gareth lo mismo !!
Gaffi

1
Literalmente me reí a carcajadas con la poesía de la soledad del compilador. ¿Soy sádico? Nueva línea en constante.
Alfa

48

Piet, 867 ejecutando bloques de colores

¿Gran premio, dices? Esto tiene un tamaño de codel de 2.

un haiku que se imprime

Salida:

SPRING EVER RETURNS
NEVER EXACTLY THE SAME
THIS IS NOT A QUINE

¡Este desafío fue divertido! He escrito un codificador de instrucciones Piet que toma instrucciones y las traduce a un script Piet. Es un trabajo corto desde allí generar código para imprimir una cadena dada. Pongo una pequeña (pero efectiva) cantidad de esfuerzo en jugar golf al código Piet mientras solo uso las instrucciones de un solo códec.

Luego hice una fuente de píxeles. Por cada píxel en un personaje, lo exploto en 4 códeles: 2 negros y 2 ejecutados. El primer codel encontrado no se ejecuta, por lo que si un segmento de un carácter tiene n píxeles, por ejemplo, eso corresponde a 2 * n * -1 instrucciones.

Las líneas hacia los lados invierten el puntero de dirección y lo mueven hacia abajo 2 píxeles, llevándolo a la siguiente fila. Por lo tanto, las instrucciones se invierten en cualquier otra línea.

Una vez que tenía el código para producir "texto incrustado en el texto", se vuelve divertido. Probablemente escribí 20 haiku en el camino, pero finalmente me decidí. Al ajustar la fuente; agregando / eliminando serifas, redondeando esquinas, cambiando altura / ancho, etc., pude alterar el número total de píxeles no blancos en la imagen de modo que el código Piet se ajustara exactamente al texto de la imagen.

¡Prima! ¡Puedes hacer tu propio haiku quinelike! http://pastebin.com/zxc9V3UX


¿Hay algún lugar en línea donde pueda probar esto? Si funciona definitivamente vale la pena un +1.
Gareth

Encontré uno aquí , pero el programa no dio salida :-(
Gareth

@Gareth, Piet es bastante conocido por sus pésimos editores / intérpretes, y no pude conseguir que el editor en línea de npiet produjera resultados para nada. El guión publicado funciona en PietIDE .
stand de

1
Desafortunadamente, eso es totalmente molesto en Chrome en mi Mac. Veré si puedo descargar uno que funcione mañana.
Gareth

1
Te escuché como haiku, así que puse un haiku en tu foto de un haiku para que obtengas un haiku cuando haiku.
Li-aung Yip

23

Perl

$_
= "Repeating myself"
;print"$_\nis like $_.\n$_.\n";

Cómo leerlo en voz alta:

dollar underscore
equals repeating myself
print nis like line noise.

Salida:

Repeating myself
is like Repeating myself.
Repeating myself.

55
¿No es un policía leer el subrayado del dólar en voz alta en la primera línea y luego omitirlo (junto con algunos otros caracteres) en la tercera línea?
dspyz

Sí, es realmente :)
Timwi

19

INTERCALO

¡INTERCAL tiene capacidades de salida limitadas, pero las "capacidades limitadas" nunca me han impedido escribir un programa de INTERCAL!

DO READ OUT #18
+#3301
+#214
PLEASE GIVE UP

Por favor, lea esto como:

Do read out eighteen,
Three thousand three hundred one,
Two hundred fourteen.

(Tenga en cuenta que mi repetitivo está al final del programa en lugar de al principio).

El programa produce la salida:

XVIII

MMMCCCI

CCXIV

Lo cual, cuando se habla en voz alta, dice:

Ex vee eye eye eye,
Em em em cee cee cee eye,
Cee cee ex eye vee.

1
Creo que necesitas terapia.
Chris Kitching

13

CoffeeScript

Con la lengua firmemente en la mejilla, presento CoffeeScript:

here = "my haiku"
were_doomed() unless 1 is 1
alert Date.now()

Pronunciado:

Here is my haiku
We're doomed unless one is one
alert date dot now

Si su sincronización es correcta (!), Su salida podría ser, por ejemplo, 1337181872717, pronunciada:

one three three seven
one eight one eight seven two
seven one seven

Teniendo en cuenta que mi primera carrera en esto fue un microsegundo de una respuesta de haiku válida, ¡creo que es lo suficientemente zen como para calificar!

NB: Me alegraría escuchar suficientes alternativas zen para mis dos primeras líneas (ciertamente débiles).


+1 para "si es el momento adecuado" y "uno tres tres siete"
aplaude el

10

J

Programa:

p:i.4
*:*:*:i.3
!8

Leer (sustituyendo nombres de verbos):

Prime Integers Four
Square Square Square Integers 3
Factorial Eight

Salida (leer los números en voz alta):

2 3 5 7
0 1 256                          (Read: Zero One Two-Fifty-Six)
40320                            (Read: Forty Three-Twenty)

8

Pitón

Código:

for _ in range(1,3):
    print 'Hi ' * 5, 'there ' *  2 * (-1+_) 
print 'I now', 'go ' * 3

Cómo leer:

for in range one three
print hi five there two one plus
print i now go three

Salida:

Hi Hi Hi Hi Hi  
Hi Hi Hi Hi Hi  there there 
I now go go go 

Muestra de trabajo: http://ideone.com/hDniW


7

logo

Aquí hay un procedimiento de Haiku que también es un procedimiento de quine (fácil debido a la capacidad de introspección del logotipo)

to better_yourself
  printout "better_yourself
end ; as you began

Leído como

Para mejorarte a ti mismo
Imprime la cita mejor para ti mismo
Termina como comenzaste


1
Leí "Logo" y pensé "Esto implicará que una tortuga escriba un Haiku, ¿no?" +1 aunque no haya PEN UP o PEN DOWN. :)
Li-aung Yip

4

Rubí

"A ruby haiku.
Why, yes, it is."; print open(
__FILE__).read #this now, please.

Leído como:

A ruby haiku.
Why, yes, it is. Print open
file. Read this now, please.

Desafortunadamente, no fluye muy bien. En mi defensa, son las 12:50 am ...


3

JavaScript (no funciona en Firefox)

             (function haiku() { with (
console) log ((('' + haiku). // output
replace)     (/[ !-@{-~[-^]+/gim, ' ')); void haiku })()

funciona a excepción del
motor JavaScript de Mozilla y muestra la
ortografía después de ejecutar


3

Pitón

(Solo lea el primer nivel de paréntesis (no el segundo)).

Código y cómo leer:

for e in range(3):                      # for e in range three
    if True is False: what = then       # if true is false, what is then?
    print "oh " * (5 + 2 * (e & 1))     # print oh times _seven_

Salida, probablemente el haiku más básico del mundo:

oh oh oh oh oh
oh oh oh oh oh oh oh
oh oh oh oh oh

Probablemente podría reemplazar True == Falsecon True is Falsepara hacer que el código del programa se parezca más a cómo lo leería.

@LegoStormtroopr estuvo de acuerdo. Editar: me había olvidado de este. Tan estúpido como es el resultado, me resulta extrañamente satisfactorio leerlo en voz alta con mi más grave "voz de melodía".
daniero

Al menos en Python 3, what = thentambién podría reemplazarse con what is then.
MaxiMouse

3

Python (2 entradas)

Entrada 1: un haiku a tiempo

Debe guardar esto en un archivo y ejecutarlo desde el mismo directorio. Este haiku se imprime muy lentamente en la pantalla, un poema en palabras y tiempo.

from time import sleep
for line in open(__file__):
  print line; sleep(len(line))

Entrada 2: un haiku sin simbolismo

Esto es similar a lo anterior, pero fue un intento de escribir un haiku de Python que usara solo palabras clave y corchetes mínimos o sustituciones de símbolos (p. Ej. = pronunciado como "es").

if __file__ is not None:
 for line in open(__file__):
  print not False and line

2

Tcl

Aquí hay un ejemplo de auto-documentación y auto-salida:

catch {me as I make}
proc unknown args {puts [read $args]}
[open [info script]]

0

Empuje

ia0 <esc><c-x>
YpA-<esc>
px5<c-x><c-x>

leído como

i a zero x
Y p A hyphen escape
p x five x x

Escribe:

a-1
a-1-
-7

leído como:

a negative one
a minus one negative
negative seven

0

Python 3

print(print.__doc__[:15])
print(print.__doc__[13:][:13])
print(print.__doc__[32])

Leído como:

print print doc one five
print print doc one three one three
print print doc three two

Huellas dactilares:

print(value, ..
..., sep=' ',
\

Leído como:

print value dot dot
ellipses, sep equals blank
reverse solidus
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.