几个有趣的 Quine 变种

Aiur · Zellux at 
Quine 是指一类能生成自己的程序,例如下面这个 C 程序运行后就能把自己的源码完整的打印出来:char*f="char*f=%c%s%c;main(){printf(f,34,f,34,10);}%c";main(){printf(f,34,f,34,10);}这类程序的构造方法计算理论导引或者其他相关的书籍中都有涉及,这里不再赘述。这个月看到几个 Quine 的变种,都挺有趣的。首先是 sigfpe 构造出来的三阶 Quine,这是一个只有两行的 Haskell 程序:q a b c=putStrLn $ b ++ [toEnum 10,'q','('] ++ show b ++ [',……