Bir haiku çıkaran çalıştırılabilir haiku [kapalı]


37

Bulmaca:

Aşağıdakileri içeren üç satırlık kısa bir program yazın:

  • sesli okunduğunda satır başına 5/7/5 heceye sahiptir
  • Çalıştığında bir haiku çıktılar.

Doğru yapıya sahip, ancak haiku olmayan bir programa bir örnek (Python):

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

(Yorum bir kopukluktur.)

Bu, yüksek sesle şu şekilde okur:

üç aralıktaki x için

EXTERMINATE İNSANLAR!

Ben bir Dalek'im.

Herhangi bir dil kabul edilebilir. Yüksek sesle okumak için Waka Waka Bang Splat!@#$%^&*()_+ gibi bir şeyi itiraf etmek istiyorsanız, isterseniz veya yüksek sesle telaffuz edilmesi gibi semboller göz ardı edilebilir . (Eminim ki bir Perl girişi olacak )!***(!:, )(*@@@#, )_(*)!.

Kod veya çıktı özellikle komikse veya özellikle zen ise, ekstra puan.


Düzenleme: Eğer diliniz ilginç bir şey yapmadan önce (eğer) kazan plakası gerektiriyorsa #include <iostream>, kazan plakasını görmezden gelmekten mutlu olurum.


Paul Richter’in Common Lisp haiku’sunu, beni beş dakika boyunca güldürdüğü gerekçesiyle kabul ediyorum.

Timwi'nin yaratıcı kural bükme ( derleyici çıktısı ?!) ve son derece akılda kalıcı çizgi için saygın söz"Static void. I long for you."

Şimdi bu soru bitiyor;

Daha birçok haikus bekliyor.

Göndermeye devam et!


Kedi gibi dillerin kullanımını engellemenizi şiddetle tavsiye ederim ...
MrZander

1
"Dalek Simülatörü" 6 hecelidir (veya belki de "# Dalek Simülatörü" 7 hecelidir?) - her iki şekilde de üçüncü satır için 5 heceli olmamalı mı?
Paul R,

@ PaulR: Haklısın. 5 heceli bir şey için düzenlenmiş. ;)
Li-aung Yip

1
Piet çözümüne bonus?
ugoren

1
@ugoren: Eğer bir Piet programını bir haiku gibi gösterebilirseniz, bunun Büyük Ödül kazanacağına eminim. ;)
Li-aung Yip

Yanıtlar:


46

Ortak Lisp

Parantez sessizdir!

Programı:

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

Oku:

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

Çıktı:

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

Bu beni beş dakika boyunca şaşırttı. Aferin!
Li-aung Yip

78

C #

Programı:

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

oku:

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

Derleyici çıkışı:

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

14
Derleyici çıktısı ?! Kuralların yaratıcı yorumlanması - Sevdim. Aynı zamanda garip bir zen ...
Li-aung Yip

2
Bu derleyici şiirdir ... +1!
Cristian Lupascu

6
Keşke bunu bir kereden fazla yenebilseydim.
Gareth

@ Gareth dito!
Gaffi

1
Derleyicinin yalnızlığının şiirine tam anlamıyla yüksek sesle güldüm. Sadik miyim? Sabit olarak Newline.
Alpha,

48

Piet, 867 renkli blokları çalıştırıyor

Büyük Ödül dedin mi? Bu 2 büyüklüğünde codel.

kendini basan bir haiku

Çıktı:

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

Bu meydan okuma eğlenceliydi! Talimatları alan ve onları bir Piet betiğine çeviren bir Piet talimat kodlayıcısı yazdım . Belirli bir dize yazdırmak için kod üretmek için oradan kısa bir iş. Sadece tek-kodlu yönergeleri kullanırken Piet kodunu golf oynamak için küçük (ancak etkili) bir çaba harcadım.

Sonra bir piksel fontu yaptım. Bir karakterdeki her piksel için, onu 4 kodele fırlattım: 2 siyah ve 2 idam. Karşılaşılan ilk kod çözme işlemi yürütülmez, bu nedenle bir karakterin parçası n piksellere sahipse , örneğin 2 * n * -1 komutuna karşılık gelir.

Yanlardaki çizgiler yön işaretçisini ters çevirir ve sonraki satıra götürerek 2 piksel aşağı doğru hareket ettirir. Böylece, talimatlar diğer tüm satırlarda değiştirilir.

"Metinde gömülü metin" üretmek için kodum olduğunda, eğlenceli hale geliyor. Muhtemelen yol boyunca 20 haiku yazdım, ama sonunda yerleştim. Yazı tipini ince ayarlayarak; serifler ekleme, çıkarma, köşeleri yuvarlama, yükseklik / genişlik değiştirme, vb.

Bonus! Kendi quinelike haiku'nu yapabilirsin! http://pastebin.com/zxc9V3UX


Bunu test edebileceğim bir yer var mı? İşe yararsa kesinlikle +1 değerinde.
Gareth

Burada bir tane buldum , ancak programın çıktısı yok :-(
Gareth

@ Gareth, Piet berbat editörleri / tercümanları için oldukça ünlüydü ve npiet'in çevrimiçi editörünü hiçbir şey için çıktı elde edemedim. Yayınlanan senaryo PietIDE'de çalışır .
12'de

1
Ne yazık ki, bu tamamen Mac'imde Chrome'da çalışıyor. Yarın işe yarayan birini indirebilir miyim, göreceğim.
Gareth

1
Haiku'yu sevdiğinizi duydum, bu yüzden haiku resminize haiku koydum, böylece haiku aldığınızda haiku elde edersiniz.
Li-aung Yip,

23

Perl

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

Yüksek sesle nasıl okunur:

dollar underscore
equals repeating myself
print nis like line noise.

Çıktı:

Repeating myself
is like Repeating myself.
Repeating myself.

5
Dolar alt çizgisini ilk satırda yüksek sesle okumak, ancak üçüncü satırda atlamak (birkaç karakterle birlikte) atmak bir polis değil mi?
dspyz

Evet, gerçekten :)
Timwi

19

INTERCAL

INTERCAL'in sınırlı çıkış yetenekleri var, ancak "sınırlı yetenekler" bir INTERCAL programı yazmamı asla engellemedi!

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

Lütfen şunu [okuyunuz]:

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

(Kazan plakamın başlangıç ​​yerine programın sonunda olduğunu unutmayın.)

Program çıktı üretir:

XVIII

MMMCCCI

CCXIV

Yüksek sesle konuşulduğunda, şöyle olur:

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

1
Bence terapiye ihtiyacın var.
Chris Kitching

13

CoffeeScript

Dil sıkıca yanağında, ben CoffeeScript sunuyoruz:

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

telaffuz edilen:

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

Zamanlamanız doğruysa (!), Çıktınız örneğin 1337181872717 olabilir:

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

Buradaki ilk koşumun geçerli bir haiku tepkisinden bir mikrosaniyelik olduğunu düşünürsek, bunun yeterlik için yeterince zen olduğunu düşünüyorum!

Not: İlk iki (kuşkusuz zayıf) çizgim için yeterince zen alternatifini duyduğuma sevinirim.


"Zamanlamanız doğru ise" ve "bir üç üç yedi" için +1
alkış

10

J

Programı:

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

Oku (fiil adları yerine):

Prime Integers Four
Square Square Square Integers 3
Factorial Eight

Çıktı (sayıları yüksek sesle oku):

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

8

piton

Kod:

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

Nasıl okunur:

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

Çıktı:

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

Çalışma örneği: http://ideone.com/hDniW


7

logo

İşte aynı zamanda quine prosedürü olan bir Haiku prosedürü (logonun gözlem yeteneği sayesinde kolay)

to better_yourself
  printout "better_yourself
end ; as you began

Olarak oku

Daha iyi kendiniz için
kendinizi daha iyi alıntı çıktısını
sen başladı End


1
"Logo" okudum ve "Bu bir Haiku yazarken bir kaplumbağa içerecek, değil mi?" Diye düşündüm. PEN YUKARI veya PEN AŞAĞI olmamasına rağmen +1. :)
Li-aung Yip

4

Yakut

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

Oku:

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

Maalesef çok iyi akmıyor. Savunma olarak bu olduğunu 00:50 ...


3

JavaScript (Firefox'ta çalışmıyor)

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

mozilla
javascript motoru hariç çalışır ve
çalıştırdıktan sonra yazım


3

piton

(Yalnızca ilk parantez düzeyini okuyun (ikinciyi değil).

Kod ve nasıl okunur:

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_

Çıktı, muhtemelen dünyadaki en temel haiku:

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

Muhtemelen sadece yerini alabilecek True == Falseile True is Falsebunu okumuştu nasıl gibi fazla program kodu yapmaya.

@LegoStormtroopr kabul etti. Düzenleme: Bu konuda unutmuştum. Çıktı kadar aptalca, en ciddi "peotry sesim" içinde yüksek sesle okumak için onu garip bir şekilde tatmin edici buluyorum.
daniero

En azından Python 3'te what = thende witn yerini alabilir what is then.
MaxiMouse

3

Python (2 girişler)

Giriş 1: Zamanında bir haiku

Bunu bir dosyaya kaydetmeniz ve aynı dizinden çalıştırmanız gerekir. Bu haiku çok yavaş yavaş kendini ekrana, kelime ve zamana ait bir şiir basar.

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

Giriş 2: Sembolizm olmadan bir haiku

Bu, yukarıdakine benzer, ancak sadece anahtar kelimeleri ve asgari parantezleri veya sembollerin yerine geçenleri (örneğin =, "olduğu gibi") kullanan bir Python haiku yazma çabasıydı .

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

2

Tcl

İşte bir kendini belgeleyen, kendini çıkaran bir örnek:

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

0

gayret

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

olarak oku

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

yazıyor:

a-1
a-1-
-7

olarak oku:

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])

Oku:

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

Baskılar:

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

Oku:

print value dot dot
ellipses, sep equals blank
reverse solidus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.