Создал ли кто-нибудь 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, указанная @Spacedman (который, кажется, делает упор на обфускацию, а не на краткость) предполагает, что
identical(quine,quine())
- хороший тестовый пример, хотя это сложно, потому что окружения переносятся вместе:identical(quine,quine(),ignore.environment=TRUE)
может быть проще. - Недавнее (октябрь 2015 г.) сообщение в блоге предоставляет другой ответ ...