一行python的强大功能

能够把自身代码打印出来的程序,叫做Quine。

 

下面是python的一行quine:

_='_=%r;print _%%_';print _%_

有人说有分号不算一行,无分号版:

 

print(lambda x:x+str((x,)))('print(lambda x:x+str((x,)))',)

 

其实,如果你用程序语言的名字+quine作为关键字去搜索,你能找到各种语言实现的Quine。对于各种语言的拥护者来说,能不能写一个优雅的quine是很重要的事,类似的,每个新语言都要实现自举(用语言本身实现编译器、解释器)才登得上大雅之堂。

 

如果你认为写一个简单Quine就能满足程序员们,你就太年轻了:

GitHub - mame/quine-relay: An uroboros program with 100 programming languages

这个repo用100种语言实现了一个quine环:

就问你,虐不虐?

posted @ 2017-10-26 22:43  幻维天  阅读(721)  评论(0)    收藏  举报