是否有人在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)