Как работает этот превосходный куайн?
Другой вопрос SO упоминает фантастическую лозу Юсуке Эндо. Quine - это компьютерная программа, которая в качестве единственного вывода создает копию своего собственного исходного кода; этот делает это с изюминкой. Обязательно посмотрите.
Но я не могу понять, как это работает. Есть указатели?
1 ответ
Во-первых, обратите внимание, что v=
line и глобус ASCII - единственные биты кода, которые меняются при каждом поколении. Это дает нам некоторый намек на то, что на самом деле здесь происходит.
Основной принцип заключается в том, что модель глобуса была закодирована Zlib::Deflate
в первой половине кода, а вторая половина расширяет его с помощью Zlib::Inflate
, читает его и рисует глобус ASCII в новом коде, с новым v
значение. В сдвигах на 45° нет ничего особенного; код нарисует земной шар в любом вращении, которое вам нравится. (На самом деле, он принимает аргумент командной строки, определяющий количество градусов, если хотите.)
Для более подробной информации о реализации, я бы рекомендовал расширить исходный код и проследить его, с этим базовым пониманием того, как разработан quine:)