четверг, 24 декабря 2009 г.

Мой первый quine

Верите или нет, никогда квинов не писал. А после прочтения Шарифулинской статьи чего-то вдохновился.

Просто так писать квины не интересно (их написана уже туева хуча), поэтому ввел два дополнительных ограничения:

  • текст программы должен состоять только из латинских букв в нижнем регистре и пробельных символов;
  • пробельные символы должны быть нормализованы (только пробелы и переводы строк, строка начинается с непробельного символа, перед переводом строки нет пробелов, два пробела не идут подряд, в файле нет пустых строк, последняя строка файла заканчивается переводом строки);

И вот что у меня вышло:

print and print chr oct hex xab and print and
print chr oct hex xab and print chr hex a for
q yprint and print chr oct hex xab and print and
print chr oct hex xab and print chr hex a for
q y

Немного в лоб, конечно, зато оба условия соблюдены. Как оказалось, писать квины не так уж сложно.

Есть у кого-либо охота поиграть в perlgolf с соблюдением вышеуказанных правил? Только давайте еще договоримся, что длина строки не должна превышать 80 символов.

Update: и без ключей командной строки. Update #2: код должен быть кроссплатформенным.

2 comments:

  1. Для начала просто избавимся от красоты:

    print and print chr oct hex ab and print and
    print chr oct hex ab and print chr hex a for
    q yprint and print chr oct hex ab and print and
    print chr oct hex ab and print chr hex a for
    q y
    ОтветитьУдалить
  2. Мда, честно говоря, после такого уже ничего не хочется:

    http://catap.ru/blog/2009/11/09/one-japan-man/

    :-)
    ОтветитьУдалить