Как работает этот превосходный куайн?

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам