LINUX.ORG.RU

[javascript] [quine] ли?

 


0

1

Начитался вики, сразу пришёл в голову такой код:

(function(){return '(' + arguments.callee.toString() + ')()'})()
Делает что надо, но:

...более строгое условие: программа не должна пользоваться трюками, позволяющими получить доступ к своему исходному коду, хранящемуся в памяти загрузчика или интерпретатора

Так вот, трюк это, или не трюк? И если придираться к словам, код в памяти не хранится, хранится только объект функции у которого есть метод возвращающий строку.

Погуглил, нашел пару реализаций с htmlом, что-то почти нечитаемое и аналогичную моей, но чёткого ответа не нашёл.

Вам же к матану надо готовиться.

buddhist ★★★★★
()
2 мая 2012 г.
Ответ на: комментарий от qulinxao

Там есть

(function a(){print('('+a+')()')})()
— тот же вызов toString, только неявный.

Kalashnikov ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.