该挑战类似于您可以进行Meta Quine吗?
quine是在STDOUT上产生自身的程序。挑战在于产生程序A,该程序在运行时会在STDOUT上产生程序B。运行时,程序B在STDOUT上生成程序A。程序A和B必须以相同的语言编写(并运行)。链接的问题约束A!=B。这看起来太简单了。因此,对于这个问题,我们坚持使用以下规则,将A和B定义为对数:
- 程序A和B不得使用任何相同的字符,但空格和语句分隔符以及标点符号除外。
- 程序A和B必须分别包含至少一个既不是空格也不是语句分隔符,也不是标点符号的字符。
- 出于规则1和2的目的,术语“空白”不包括任何符号或符号序列,它们本身就是被解释的语句,运算符或符号(与分隔符相对)。因此,在空白语言中,没有空白。
- 语句分隔符是该语言中通常用于分隔语句的语法元素。这将包括python中的换行符,或Java,perl或C中的分号。
- 标点符号是ASCII字符,它既不是空格也不是POSIX单词字符类(即,下划线不是用于此目的的标点符号),即
ispunct()
返回true,而不是_
。 - 程序A在运行时必须在其STDOUT上生成程序(程序B),而程序在运行时又会生成程序A。
- 程序A和B必须使用相同的编程语言。
- 使用的编程语言实际上必须是一种编程语言。除非您没有其他理由,否则我建议它必须是图灵完整的。
- A和B中的至少一个必须在该语言中执行至少一个语句。
这是代码高尔夫,所以最短的答案会获胜,得分是程序A的长度(以字节为单位)(即程序B的长度无关紧要)。
您能否在第一条款的例外列表中添加“标点符号”?否则,不可能用多种语言(尤其是那些需要在主函数中使用花括号的语言)解决此任务。
—
2014年
相关但可能完全不同。
—
Martin Ender 2014年
@FUZxxl我允许标点符号,但不包括下划线。
—
2014年
对于这里的目的,是
—
HostileFork说不要相信2014年
A
和a
考虑不同的“角色”?
这将是更好,如果你提供的匹配规则5. ASCII字符的完整列表
—
aditsu退出,因为SE是邪恶的