Anatoly Vorobey (avva) wrote,
Anatoly Vorobey
avva

Category:

квайны

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

На любом современном языке программирования можно написать квайн, причем "честный". Под честным я имею в виду, что программа не пытается найти свой собственный исходный текст на диске и прочитать из файла, или скажем пользуется тем, что "система" дает ей доступ к исходному тексту. Например, в языке Basic можно написать программу "10 LIST" и это будет квайн, потому что LIST дает команду напечатать исходный код - но это "нечестно". Квайн на джаваскрипте в одной из предыдущих записей тоже был "нечестным", но очень уж элегантным. Честный квайн вообще ниоткуда не берет свой исходный код, кроме строк, которые написаны в самом тексте программы.

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

Я вспомнил про квайны недавно в связи с математической логикой, там есть похожие вещи. И решил написать квайн на питоне, чтобы вспомнить, как это. Не сразу получилось, но все-таки написал, и когда проверил, что выдает ровно свой исходник, с точностью до символа, как-то даже обрадовался и настроение повысилось, ходил потом с улыбкой. Хоть и помнил в принципе, как к этому подойти, а все равно. Мелочь, а приятно.
Tags: программирование
Subscribe

Recent Posts from This Journal

  • этого ещё неоперившегося подонка

    Прекрасная находка bbb ( здесь): историк теории вероятности и статистики Оскар Шейнин и его труд "Чёрная книга: Ошибки и неточности в…

  • следующий раз

    Сегодня в израильских школах был традиционный день памяти убийства Ицхака Рабина. У друга в школе дочери учительница сказала (перевожу с иврита):…

  • компьютер 91 года

    В фейсбуке есть израильское сообщество "в 90-х на этой неделе", там всякие заметки из прессы 90-х, реклама итд. Сегодня попалась реклама компьютера…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 32 comments

Recent Posts from This Journal

  • этого ещё неоперившегося подонка

    Прекрасная находка bbb ( здесь): историк теории вероятности и статистики Оскар Шейнин и его труд "Чёрная книга: Ошибки и неточности в…

  • следующий раз

    Сегодня в израильских школах был традиционный день памяти убийства Ицхака Рабина. У друга в школе дочери учительница сказала (перевожу с иврита):…

  • компьютер 91 года

    В фейсбуке есть израильское сообщество "в 90-х на этой неделе", там всякие заметки из прессы 90-х, реклама итд. Сегодня попалась реклама компьютера…