16

このブログ投稿を読み終えました: http://www.skorks.com/2010/03/an-interview-question-that-prints-out-its-own-source-code-in-ruby/

その中で、著者はインタビューの質問としてクワインを使用することの正当性を主張しています。同意するかどうかはわかりませんが、それはこの質問の目的ではありません。

彼は続けて、Ruby でクワインを作成し、それをリファクタリングして短くします。それから、彼は読者にそれをさらに短くしようと挑戦します。

私はしばらくそれをいじって、次のことを思いつきました:

s="s=;puts s[0,2]+34.chr+s+34.chr+s[2,36]";puts s[0,2]+34.chr+s+34.chr+s[2,36]

クインを試したのはこれが初めてで、これ以上短くする方法がわかりません。

あなたが思いつく最短のRubyクワインは何ですか? 実装で必要な場合は、説明を投稿してください。

4

2 に答える 2

26

残念ながら、RubyGardenはもう存在しません。これを補うためのリンクがいくつかあります(ちなみに、Kevinが投稿したものはもう最短のものではありません):

Rubyの最初のクワイン

s="s=%c%s%c; printf s,34,s,34,10%c"; printf s,34,s,34,10

パイソンクワインよりわずかに小さいルビークワイン

_="_=%p;puts _%%_";puts _%_

最短のnozero[原文のまま!]ルビークイン

puts <<2*2,2
puts <<2*2,2
2
于 2010-03-19T08:40:01.313 に答える
0

さらに短い:

$><<IO.read($0)

改行を含まない 15 文字

于 2012-01-09T23:40:28.493 に答える