这种128语言的Quino Ouroboros(一个以另一种语言输出程序的程序,以另一种语言输出程序的程序(后来以125种语言输出),该程序输出原始程序)是非常令人印象深刻的。但不幸的是,它具有静态的迭代次数。
编写一个程序,其输出的程序(用另一种语言不是必需的,但它可以是),它输出一个程序,它输出一个程序等,其中n次迭代之后,输出原始程序首次(即,没有中间程序应该与原始程序相同,因为否则将忽略其输入的quine将起作用),其中n是作为输入提供的非负整数。输入不能仅仅是原始源代码中的数字(例如,放在x = <the value of n>
程序的开头),它应该是以下之一:
- 作为命令行参数传递
- 从标准输入读取
- 作为参数传递给函数,该函数返回/输出新程序。
对于衔尾蛇的中间阶段,您的程序可以是功能齐全的程序,也可以是不带参数的函数,调用该函数时,它将返回/输出下一个。
您可能不会读取源文件本身,也可能不会使用任何类似于quine的内置函数(我不认为会有任何方法可以这样做,但是可能会有)
为了清楚起见,如果为n = 0
,则程序应输出其自己的源代码。
如果为n = 1
,则程序应输出另一个程序,该程序将输出原始源代码。
等等...
最小字节获胜!
编辑:
我应该写过“对于衔尾蛇的中间阶段,您的程序可以是没有输入的功能齐全的程序,也可以是没有参数的功能”。如果您的程序输出链中的下一个,则等待输入,这很好,但是您的程序不需要原始值n。
getInput()
而没有提供任何输入。还是我们可以说输入一些不为以后的迭代使用的随机数,以防止错误getInput()
?Aka当前的Python答案有效吗?
n
,输出一个程序,该程序是“微风” n
迭代的“初始程序” ,并且我们的答案不应计为n
迭代之一。它是否正确?