Lispers声称作为奖励而不是更多“主流”语言的一个主要观点是,宏语言实际上是图灵完成的(我不记得这是否是 On Lisp 中的Paul Graham或者如果它是 Land of Lisp ) 1 中的Conrad Barski,至少对于局外人来说,这似乎是真的 - C / C ++中的预处理器指令似乎没有图灵完整(老实说,他们感觉更像是一种注释语法)。
(我将不会提出诸如“什么是最好的......”之类的意见问题。)
1。顺便说一下,两者都是非常好的书,只是说'
答案 0 :(得分:4)
C宏实际上是图灵完成,如果多次处理。查看this related question,特别是在接受的答案中链接到的Turing machine implementation。
但是,这是作弊。在那里使用的解决方案强烈暗示C宏真的不是图灵完成。
答案 1 :(得分:3)
C预处理器不是Turing-complete的评估与无意义一样准确。如果在预处理器(例如代码文本操作)术语中制定并且应该编码,那么对于C预处理器而言过于复杂的任何计算都很难理解。
C ++模板是预处理器魔术的既定继承者,比那些更容易理解。因此,Lispers再次完全正确,并且一如既往地忽略了这一点: - )。