代码之家  ›  专栏  ›  技术社区  ›  AaronThomson

最短红宝石奎因[闭合]

  •  16
  • AaronThomson  · 技术社区  · 15 年前

    刚刚读完这篇博文: http://www.skorks.com/2010/03/an-interview-question-that-prints-out-its-own-source-code-in-ruby/

    在这篇文章中,作者论证了使用奎因作为采访问题的理由。我不确定我是否同意,但这不是问题所在。

    他接着用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]
    

    这是我第一次尝试奎因,我不知道如何使它更短。

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

    2 回复  |  直到 13 年前
        1
  •  21
  •   Michael Kohl    15 年前

    不幸的是,鲁比加德已经不存在了。这里有几个链接来弥补它(凯文发布的那个不再是最短的了):

    The first quines in Ruby

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

    ruby quine slightly smaller than python quine

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

    shortest nozero [sic!] ruby quine

    puts <<2*2,2
    puts <<2*2,2
    2
    
        2
  •  2
  •   Jake Summers    13 年前

    甚至更短:

    $><<IO.read($0)
    

    15个字符,不包括换行符

    推荐文章