Построение quines (самовоспроизводящиеся функции)

Создал ли кто-нибудь quine («Программа, которая генерирует копию своего собственного исходного текста в качестве полного вывода»: http: //www.nyx .net / ~ gthompso / quine.htm ) в R? (Тег [quine] выводит множество примеров на Python, Java, ... но, очевидно, ни одного в R.)

f <- function() { body() }

подходит близко:

> f()
{
    body()
}

], но в нем отсутствует имя функции.

Как насчет кратчайшей возможности? Наиболее запутанной?

редактировать : из множества ответов ниже, кажется, что существует множество способов определения самореферентности и среда, в которой это должно произойти:

  • в среде R: функция -> функция (@ bill_080)
  • в среде ОС / оболочки: программа -> программа [более или менее эквивалентна программе -> текст]: (@kohske)
  • другое: функция -> текст (@JoshUlrich, @James, проблема, как определено выше)

Примечания:

  • Поток из R-help poin высказано @Spacedman (которое, кажется, подчеркивает запутанность, а не краткость) предполагает, что идентичный (quine, quine ()) - хороший тестовый пример, хотя это сложно, потому что окружающая среда переносится: идентичный (quine, quine (), ignore.environment = TRUE) может быть проще.
  • Недавнее (октябрь 2015 г.) сообщение в блоге дает другой ответ ...

15
задан Ben Bolker 3 November 2015 в 21:57
поделиться