俳句を出力する実行可能な俳句[非公開]


37

パズル:

次の短い3行のプログラムを作成します。

  • 声を出して読むと、1行に5/7/5の音節がある
  • 実行時に俳句を出力します。

正しい構造ですが、俳句以外の出力を持つプログラムの例は(Python)です:

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

(コメントはちょっとした警戒です。)

これは次のように読み上げられます。

範囲3のx

絶滅危print種を印刷!

私はダレクです。

任意の言語が受け入れられます。声を出して読むために、Waka Waka Bang Splatの!@#$%^&*()_+ようなものを認めるなど、必要に応じて記号を無視したり、声を出して発音したりできます。(のようなPerlエントリがあると確信しています)!***(!:, )(*@@@#, )_(*)!.

コードまたは出力のいずれかが特におかしい場合、または特に禅の場合の追加ポイント。


編集:あなたの言語が何か面白いことをする前にボイラープレートを必要とするなら(#include <iostream>?)、ボイラープレートを無視してうれしいです。


ポール・リヒターのCommon Lisp俳句を受け入れたのは、それが私を5分間笑わせたからです。

Timwiの独創的なルールベンディング(コンパイラの出力?!)および非常に記憶に残る行についての名誉ある言及"Static void. I long for you."

これでこの質問は終わりです。

さらに多くの俳句が待っています。

投稿を続けてください!


猫のような言語の使用を防ぐことを強くお勧めします
...-MrZander

1
「Dalek Simulator」は6音節です(または「#Dalek Simulator」は7音節ですか?)-どちらにしても、3行目の5音節ではないでしょうか?
ポールR

@PaulR:そのとおりです。5音節の何かに編集されました。;)
Li-aung Yip

1
Pietソリューションのボーナス?
ウゴレン

1
@ugoren:Pietプログラムを俳句のように見せることができれば、きっと大賞を受賞するでしょう。;)
Li-aung Yip

回答:


46

Common Lisp

括弧は無言です!

プログラム:

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

として読む:

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

出力:

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

これにより、5分間ひび割れました。よくやった!

78

C#

プログラム:

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

読む:

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

コンパイラー出力:

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

14
コンパイラー出力?!ルールの創造的な解釈-私はそれが好きです。それは...妙にも禅だ
リチウムアウン・イップ

2
これはコンパイラの詩です... +1!
クリスチャンルパスク

6
これに何度も賛成できたらと思います。
ガレス

@Gareth同上!!
ガフィ

1
私は文字通り、コンパイラの孤独の詩を大声で笑いました。私は悲しいですか?定数の改行。
アルファ

48

Piet、867色ブロックの実行

大賞、あなたは言う?これのコーデックサイズは2です。

自分自身を印刷する俳句

出力:

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

この挑戦は楽しかったです!私は、命令を受け取り、それらをPietスクリプトに変換するPiet命令エンコーダーを作成しました。そこから特定の文字列を出力するコードを生成するのは簡単です。単一のコーデル命令のみを使用しながら、Pietコードのゴルフに少し(しかし効果的)な努力をしました。

次に、ピクセルフォントを作成しました。文字のピクセルごとに、2つの黒と2つの実行コードの4つのコードに分割します。最初に遭遇するcodelは実行されないため、たとえば文字のセグメントにnピクセルがある場合、2 * n * -1命令に対応します。

両側の線は方向ポインターを反転し、2ピクセル下に移動して次の行に移動します。したがって、命令は1行おきに反転されます。

「テキストに埋め込まれたテキスト」を生成するコードを作成したら、楽しくなります。途中で20個の俳句を書いたと思いますが、最終的には落ち着きました。フォントを調整することにより。セリフの追加/削除、角の丸み付け、高さ/幅の変更など、画像のホワイト以外のピクセルの総数を変更して、Pietコードが画像のテキストにぴったり合うようにしました。

ボーナス!独自の馬のような俳句を作ることができます! http://pastebin.com/zxc9V3UX


これをテストできるオンラインの場所はありますか?うまくいけば、間違いなく+1の価値があります。
ガレス

私はここで1つを見つけましたが、プログラムは何も出力しませんでした:
Gareth

@ Gareth、Pietはお粗末なエディター/インタープリターでかなり悪名が高く、npietのオンラインエディターで何かの出力を生成することはできませんでした。投稿されたスクリプトはPietIDEで動作します
ブースビー

1
残念ながら、それは私のMacのChromeに完全に没頭しています。明日機能するものをダウンロードできるかどうかを確認します。
ガレス

1
あなたは俳句が好きだと聞いたので、俳句の写真に俳句を入れて、俳句のときに俳句が得られるようにしました。
李アウンイップ

23

Perl

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

大声で読み上げる方法:

dollar underscore
equals repeating myself
print nis like line noise.

出力:

Repeating myself
is like Repeating myself.
Repeating myself.

5
最初の行でドルのアンダースコアを読み上げてから、3行目で(他の多くの文字と一緒に)スキップするのは警戒ではありませんか?
dspyz 14

はい、それは本当にです:)
ティムウィ14

19

インターカル

INTERCALの出力機能には制限がありますが、「制限された機能」によってINTERCALプログラムの作成が妨げられることはありません。

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

以下を読んでください:

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

(ボイラープレートはプログラムの最初ではなく最後にあることに注意してください。)

プログラムは出力を生成します。

XVIII

MMMCCCI

CCXIV

声に出して話すと、次のようになります。

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

1
治療が必要だと思います。
クリスキッチング

13

CoffeeScript

舌を頬にしっかりと固定して、CoffeeScriptを紹介します。

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

発音:

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

タイミングが正しければ(!)、出力は、たとえば1337181872717のように発音されます。

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

これで私の最初の実行が有効な俳句応答から1マイクロ秒であったことを考えると、資格を得るのに十分だと思います!

NB:最初の2つの(明らかに弱い)行に対して十分に多くの選択肢があることを嬉しく思います。


「タイミングが合っている場合」と「1 3 3 7」の場合は+1
拍手

10

J

プログラム:

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

読み取り(動詞名の置換):

Prime Integers Four
Square Square Square Integers 3
Factorial Eight

出力(数字を読み上げる):

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

8

Python

コード:

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

読み方:

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

出力:

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

作業サンプル:http : //ideone.com/hDniW


7

ロゴ

Haikuの手順は次のとおりです。これはまた、簡単な手順です(ロゴのイントロスペクション機能により簡単です)。

to better_yourself
  printout "better_yourself
end ; as you began

として読む

より良い自分でするには
、自分がより良い見積もりをプリントアウトし
、あなたが始まったとして終了します


1
「ロゴ」を読んで、「これは亀が俳句を書くことに関係するだろう」と考えました。PEN UPまたはPEN DOWNがなくても+1。:)
Li-aung Yip

4

ルビー

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

として読む:

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

残念ながら、あまりうまく流れません。私の防御で、午前12時50分です...


3

JavaScript(Firefoxでは機能しません)

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

mozilla
javascriptエンジンを除いて動作し
、実行後にスペルを表示します


3

Python

(最初のレベルの括弧のみを読み取ります(2番目のレベルは読み取りません))。

コードと読み方:

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_

出力、おそらく世界で最も基本的な俳句:

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

おそらく、ちょうど置き換えることができTrue == FalseTrue is Falseより多くのあなたがそれを読んだかのようなプログラム・コードを作成します。

@LegoStormtrooprは同意しました。編集:私はこれを忘れていました。出力が愚かであるのと同じように、私の最も深刻な「ペオトリーボイス」で声に出して読むのは奇妙に満足です。
ダニエロ

少なくともPython 3では、what = thenwitnに置き換えることもできwhat is thenます。
19:03のMaxiMouse

3

Python(2エントリ)

エントリー1:時間内の俳句

これをファイルに保存し、同じディレクトリから実行する必要があります。この俳句は非常にゆっくりと画面に表示され、言葉と時間の詩です。

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

エントリー2:象徴性のない俳句

これは上記と似ていますが、キーワードと最小限の角かっこまたは記号の置換(たとえば=「is」と発音)のみを使用するPython俳句を作成しようとしました。

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

2

Tcl

自己文書化、自己出力の例を次に示します。

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>

として読む

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

書き込み:

a-1
a-1-
-7

として読む:

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

として読む:

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

プリント:

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

として読む:

print value dot dot
ellipses, sep equals blank
reverse solidus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.