Подтвердить что ты не робот

Кратчайший Ruby Quine

Только что закончил читать этот пост в блоге: http://www.skorks.com/2010/03/an-interview-question-that-prints-out-its-own-source-code-in-ruby/

В нем автор аргументирует случай использования quine в качестве вопроса интервью. Я не уверен, что согласен, но это не тот вопрос, о котором идет речь.

Он продолжает строить quine в 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]

Это первый раз, когда я когда-либо пытался сделать quine, и я не могу понять, как сделать его короче.

Каков самый короткий Ruby quine, который вы можете придумать? Пожалуйста, опубликуйте объяснение, если это требует его реализация.

4b9b3361

Ответ 1

К сожалению, RubyGarden больше не существует. Вот несколько ссылок, чтобы наверстать упущенное (один из них, кстати, уже не самый короткий):

Первые quines в Ruby

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

рубиновый quin немного меньше, чем у python quine

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

кратчайший nozero [sic!] ruby ​​quine

puts <<2*2,2
puts <<2*2,2
2

Ответ 2

Еще короче:

$><<IO.read($0)

15 символов, не включая новую строку

Ответ 3

$><<open($0).read

17 байт, если у вас нет конечной новой строки.

РЕДАКТИРОВАТЬ: о, ждите, читая собственный исходный файл, обманывает.