Haiku thực thi mà đầu ra một haiku [đóng]


37

Câu đố:

Viết một chương trình ba dòng ngắn:

  • có 5/7/5 âm tiết trên mỗi dòng khi đọc to
  • xuất ra một haiku khi chạy.

Một ví dụ về chương trình có cấu trúc chính xác, nhưng đầu ra không phải là haiku, là (Python):

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

(Nhận xét là một chút của một cảnh sát.)

Điều này đọc to như:

cho x trong phạm vi ba

in CON NGƯỜI NGOẠI TẤT!

Tôi là một Dalek.

Bất kỳ ngôn ngữ đều được chấp nhận. Với mục đích đọc to, các biểu tượng như !@#$%^&*()_+có thể bị bỏ qua nếu bạn muốn, hoặc phát âm to, thừa nhận một cái gì đó như Waka Waka Bang Splat . (Tôi chắc chắn sẽ có một mục Perl như thế nào !***(!:, )(*@@@#, )_(*)!.)

Điểm bổ sung nếu mã hoặc đầu ra đặc biệt hài hước, hoặc đặc biệt là zen.


Chỉnh sửa: Nếu ngôn ngữ của bạn yêu cầu bản soạn sẵn trước khi nó có thể làm bất cứ điều gì thú vị ( #include <iostream>?) Thì tôi rất vui lòng bỏ qua bản tóm tắt.


Tôi đã chấp nhận bài thơ Lisp chung của Paul Richter với lý do nó khiến tôi cười trong năm phút.

Đề cập đáng trân trọng cho uốn cong quy tắc sáng tạo của Timwi ( đầu ra trình biên dịch ?!) Và cho dòng cực kỳ đáng nhớ"Static void. I long for you."

Bây giờ câu hỏi này kết thúc;

Nhiều hơn haikus đang chờ đợi.

Tiếp tục đăng bài!


Tôi thực sự khuyên bạn nên ngăn chặn việc sử dụng các ngôn ngữ giống như mèo ...
MrZander

1
"Trình mô phỏng Dalek" là 6 âm tiết (hoặc có thể "# Trình mô phỏng Dalek" là 7 âm tiết?) - bằng cách nào đó, không nên là 5 âm tiết cho dòng thứ ba?
Paul R

@PaulR: Bạn nói đúng. Chỉnh sửa thành một cái gì đó 5 âm tiết. ;)
Li-aung Yip

1
Thưởng cho một giải pháp Piet?
ugoren

1
@ugoren: Nếu bạn có thể làm cho một chương trình Piet trông giống như một bài haiku, tôi khá chắc chắn rằng nó sẽ giành được Giải thưởng Lớn. ;)
Li-aung Yip

Câu trả lời:


46

Lisp thường gặp

Dấu ngoặc đơn im lặng!

Chương trình:

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

Đọc như:

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

Đầu ra:

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

Điều này làm tôi khó chịu trong năm phút. Làm tốt!
Li-aung Yip

78

C #

Chương trình:

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

Đọc:

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

Trình biên dịch đầu ra:

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

14
Trình biên dịch đầu ra?! Giải thích sáng tạo của các quy tắc - Tôi thích nó. Nó cũng thật kỳ lạ ...
Li-aung Yip

2
Đây là thơ biên dịch ... +1!
Cristian Lupascu

6
Tôi ước tôi có thể nâng cao điều này hơn một lần.
Gareth

@Gareth ditto !!
Gaffi

1
Tôi thực sự bật cười vì thơ cô đơn của nhà soạn nhạc. Tôi có buồn không Dòng mới trong hằng số.
Alpha

48

Piet, 867 thi hành khối màu

Giải thưởng lớn, bạn nói gì? Điều này có kích thước codel là 2.

một bài thơ tự in

Đầu ra:

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

Thử thách này thật thú vị! Tôi đã viết một bộ mã hóa lệnh của Piet để lấy các hướng dẫn và chuyển chúng thành một tập lệnh Piet. Đó là công việc ngắn từ đó để tạo mã để in một chuỗi nhất định. Tôi đã bỏ ra một lượng nhỏ nỗ lực (nhưng hiệu quả) để chơi mã Piet trong khi chỉ sử dụng các hướng dẫn đơn mã.

Sau đó tôi đã tạo một phông chữ pixel. Đối với mỗi pixel trong một ký tự, tôi thổi nó thành 4 codel: 2 đen và 2 được thực thi. Codel đầu tiên gặp phải là không thực thi, vì vậy, nếu một đoạn của một ký tự có n pixel, chẳng hạn, tương ứng với các hướng dẫn 2 * n * -1.

Các dòng xuống hai bên đảo ngược con trỏ hướng và di chuyển nó xuống 2 pixel, đưa nó sang hàng tiếp theo. Do đó, hướng dẫn được đảo ngược trên mỗi dòng khác.

Khi tôi có mã để tạo "văn bản được nhúng trong văn bản", nó sẽ rất vui. Có lẽ tôi đã viết 20 haiku trên đường đi, nhưng cuối cùng tôi đã ổn định. Bằng cách điều chỉnh phông chữ; thêm / xóa serif, góc làm tròn, thay đổi chiều cao / chiều rộng, v.v., tôi có thể thay đổi tổng số pixel không trắng trong ảnh sao cho mã Piet khớp chính xác với văn bản hình ảnh.

Tiền thưởng! Bạn có thể làm haiku quinelike của riêng bạn! http://pastebin.com/zxc9V3UX


Có nơi nào trực tuyến tôi có thể kiểm tra điều này? Nếu nó hoạt động, nó chắc chắn có giá trị +1.
Gareth

Tôi đã tìm thấy một cái ở đây , nhưng chương trình không cho kết quả đầu ra :-(
Gareth

@Gareth, Piet khá nổi tiếng với các biên tập viên / phiên dịch tệ hại, và tôi không thể có được trình soạn thảo trực tuyến của npiet để tạo đầu ra cho bất cứ điều gì. Các kịch bản được đăng hoạt động trên PietIDE .
gian hàng

1
Thật không may, cái đó hoàn toàn bị bẻ cong trong Chrome trên máy Mac của tôi. Tôi sẽ xem nếu tôi có thể tải xuống một cái hoạt động vào ngày mai.
Gareth

1
Tôi nghe nói bạn thích haiku, vì vậy tôi đặt một haiku trong bức ảnh của bạn về haiku để bạn có được một haiku khi bạn haiku.
Li-aung Yip

23

Perl

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

Làm thế nào để đọc thành tiếng:

dollar underscore
equals repeating myself
print nis like line noise.

Đầu ra:

Repeating myself
is like Repeating myself.
Repeating myself.

5
Không phải là một cảnh sát đọc to đồng đô la ở dòng đầu tiên nhưng sau đó bỏ qua nó (cùng với khá nhiều ký tự khác) trên dòng thứ ba?
dspyz

Vâng, nó thực sự :)
Timwi

19

INTERCAL

INTERCAL có khả năng đầu ra hạn chế, nhưng "khả năng hạn chế" chưa bao giờ ngăn tôi viết chương trình INTERCAL!

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

Vui lòng đọc [ra] này như:

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

(Lưu ý rằng bản tóm tắt của tôi nằm ở cuối chương trình thay vì ở phần đầu.)

Chương trình tạo đầu ra:

XVIII

MMMCCCI

CCXIV

Mà, khi nói to, đi:

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

1
Tôi nghĩ bạn cần trị liệu.
Chris Kitching

13

Cà phê

Với cái lưỡi chắc nịch, tôi trình bày CoffeeScript:

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

Phát âm:

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

Nếu thời gian của bạn là đúng (!), Đầu ra của bạn có thể là 1337181872717, được phát âm:

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

Xem xét lần chạy đầu tiên của tôi lúc này là một phần triệu giây từ phản hồi haiku hợp lệ, tôi nghĩ rằng điều đó đủ để đủ điều kiện!

Lưu ý: Tôi rất vui khi được nghe đủ các lựa chọn thay thế zen cho hai dòng đầu tiên (yếu kém thừa nhận) của tôi.


+1 cho "nếu thời gian của bạn là đúng" và "một ba ba bảy"
vỗ tay vào

10

J

Chương trình:

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

Đọc (thay thế tên động từ):

Prime Integers Four
Square Square Square Integers 3
Factorial Eight

Đầu ra (đọc số lớn):

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

8

Con trăn

Mã số:

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

Đọc thế nào:

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

Đầu ra:

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

Mẫu làm việc: http://ideone.com/hDniW


7

Logo

Đây là một thủ tục Haiku cũng là một thủ tục quine (dễ dàng vì khả năng hướng nội của logo)

to better_yourself
  printout "better_yourself
end ; as you began

Đọc như

Để bản thân tốt hơn
In ra trích dẫn bản thân tốt hơn
Kết thúc khi bạn bắt đầu


1
Tôi đọc "Logo" và nghĩ rằng "Điều này sẽ liên quan đến một con rùa đang viết Haiku, phải không?!" +1 ngay cả khi không có PEN UP hoặc PEN DOWN. :)
Li-aung Yip

4

Hồng ngọc

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

Đọc như:

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

Thật không may, nó chảy rất tốt, không may. Trong phòng thủ của tôi, bây giờ 12:50 sáng ...


3

JavaScript (không hoạt động trong Firefox)

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

hoạt động ngoại trừ
công cụ javascript mozilla và hiển thị
chính tả sau khi chạy


3

Con trăn

(Chỉ đọc cấp độ đầu tiên của dấu ngoặc đơn (không phải mức thứ hai)).

Mã và cách đọc:

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_

Đầu ra, có lẽ là haiku cơ bản nhất trên thế giới:

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

Bạn có thể chỉ cần thay thế True == Falsebằng True is Falseđể làm cho mã chương trình giống như cách bạn đọc nó.

@LegoStormtroopr đồng ý. Chỉnh sửa: Tôi đã quên về điều này. Ngốc như đầu ra, tôi thấy thật thỏa mãn khi đọc nó thành tiếng "giọng nói bình thường" nghiêm túc nhất của mình.
daniero

Ít nhất là trong Python 3, what = thencũng có thể được thay thế bằng witn what is then.
MaxiMouse

3

Python (2 mục)

Entry 1: Một haiku trong thời gian

Bạn cần lưu cái này trong một tập tin và chạy nó từ cùng một thư mục. Haiku này rất chậm in ra màn hình, một bài thơ bằng lời và thời gian.

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

Entry 2: Một haiku không có tính biểu tượng

Điều này tương tự như ở trên, nhưng là một nỗ lực để viết một haiku Python chỉ sử dụng từ khóa và dấu ngoặc hoặc thay thế tối thiểu của các ký hiệu (ví dụ: =phát âm là "is").

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

2

Tcl

Đây là một tài liệu tự viết, tự xuất, ví dụ:

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

0

Vim

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

đọc là

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

Viết:

a-1
a-1-
-7

đọc là:

a negative one
a minus one negative
negative seven

0

Con trăn 3

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

Đọc như:

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

Bản in:

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

Đọc như:

print value dot dot
ellipses, sep equals blank
reverse solidus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.