是否有人在R中构造了一个Quine(“一个生成其自身源文本的副本作为其完整输出的程序”:http://www.nyx.net/~gthompso/quine.htm)? ([quine]标签在Python,Java等中引出了很多示例,但在R中显然没有。)

f <- function() { body() }


接近:

> f()
{
    body()
}


但是缺少函数的名称。

最短的可能性怎么样?最困惑?

编辑:从下面的各种答案中,似乎有多种方法可以定义自我指称和必须发生的环境:


在R环境中:函数->函数(@ bill_080)
在OS / shell环境中:程序->程序[或多或少等同于程序->文本]:(@kohske)
其他:函数->文本(@ JoshUlrich,@ James,问题如上定义)


笔记:




thread from R-help pointed out by @Spacedman(似乎强调简洁起见)表明identical(quine,quine())是一个很好的测试用例,尽管它很棘手,因为环境也很容易:identical(quine,quine(),ignore.environment=TRUE)可能更容易。
最近的(2015年10月)blog post提供了另一个答案...

最佳答案

这是我能想到的最短的时间:

> "f" <- function() call("<-", "f", f)
> f()
"f" <- function ()
call("<-", "f", f)

07-27 21:41