Ruby 最短红宝石奎因

Ruby 最短红宝石奎因,ruby,quine,Ruby,Quine,刚刚读完这篇博文: 在这篇文章中,作者论证了使用奎因作为采访问题的理由。我不确定我是否同意,但这不是这个问题的核心 他接着在Ruby中构造了一个quine,并对其进行重构以使其更短。然后,他向读者提出挑战,要求他们尽量把它缩短 我玩了一会儿,得出了以下结论: 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中构造了一个quine,并对其进行重构以使其更短。然后,他向读者提出挑战,要求他们尽量把它缩短

我玩了一会儿,得出了以下结论:

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]
这是我第一次尝试奎因,但我不知道如何缩短它


你能想出的最短的红宝石奎因是什么?如果您的实现需要,请发布解释。

不幸的是,RubyGarden已经不存在了。这里有几个链接可以弥补它(Kevin发布的链接已经不是最短的了):

put更短:

$><<IO.read($0)

$>如果您想知道,quine是一个程序,它在运行时打印自己的源代码。这是我最短的奎因:也许我应该说“最短的,非平凡的奎因”?还有,最短的(非零长度的奎因):eval s=%q(放“eval s=%q(#{s})”谢谢,这正是我要找的。你能解释一下最后一条的语法吗?它实际上在上面链接的线程的第二页上有解释。引用:“它也可以在Perl上运行!这是Michael Kohl所指的链接,第三个quine的解释:(参见最后一篇2003年10月23日的文章)。很好。所有这些quine都缺少一行新词。不是quine:quine是不允许自读的。
_="_=%p;puts _%%_";puts _%_
puts <<2*2,2
puts <<2*2,2
2
$><<IO.read($0)