Как работает этот превосходный куайн? - PullRequest
5 голосов
/ 22 декабря 2010

Еще один вопрос SO упоминает фантастическую лозу Юсуке Эндо.Quine - это компьютерная программа, которая выдает копию собственного исходного кода в качестве единственного вывода;этот делает это с изюминкой. Обязательно посмотрите .

Но я не могу понять, как это работает.Есть указатели?

1 Ответ

6 голосов
/ 22 декабря 2010

Во-первых, обратите внимание, что строка v= и глобус ASCII - единственные биты кода, которые меняются при каждом поколении. Это дает нам подсказку о том, что на самом деле здесь происходит.

Основной принцип заключается в том, что модель глобуса была закодирована с помощью Zlib::Deflate в первой половине кода, а вторая половина расширяет его с помощью Zlib::Inflate, читает его и рисует глобус ASCII в новом коде новое значение v. В сдвигах на 45 ° нет ничего особенного; код нарисует земной шар в любом вращении, которое вам нравится. (На самом деле, он принимает аргумент командной строки, определяющий количество градусов, если хотите.)

Для получения более подробной информации о реализации, я бы рекомендовал расширить исходный код и проследить его через это с базовым пониманием того, как разработан quine:)

...