Ruby: печать исходного кода - PullRequest
0 голосов
/ 18 января 2011

Недавно я услышал о чем-то, что называется Куайн. Но мое определение немного неясно.

Я полагаю, что вы можете напечатать исходный код вашего файла Ruby без использования __FILE__? Это возможно? Я был бы очень заинтересован в ваших идеях. Я хотел бы проверить это. Не знаю, получите код ниже:

class MyClass
  def initialize
    print "You cannot read me!!"
  end
end

Так я могу напечатать весь класс?

Ответы [ 2 ]

1 голос
/ 18 января 2011

Quine - это программа, которая печатает свой собственный исходный код как единственную функциональность, и да, вы можете сделать это без чтения файла исходного кода. Настоящая и веселая задача - написать как можно меньше Квин.

Выше не будет Quine, потому что он не печатает свой собственный исходный код и не может быть, потому что он делает больше, чем просто выводит свой собственный код.

Проверить эту тему:
Самый короткий рубиновый квин

0 голосов
/ 16 июля 2011

Такие вещи следует называть не «Quines», а «Gödels» или «Goedels», потому что (по крайней мере, мне так кажется) техника, обычно используемая для достижения этого эффекта, используется в доказательстве Геделя теоремы о первой неполноте (см.Собрание сочинений Курта Гёделя I, стр.175), предшествовавшее обсуждению Куайна.

...