约翰麦卡锡对*色情编程*的意思是什么?

时间:2011-12-17 18:54:35

标签: lisp terminology history

History of Lisp中,麦卡锡写道:

  

翻译的出乎意料的外表倾向于冻结语言的形式,并且一些决定对于“递归函数......”而言相当轻松,后来证明是不幸的。这些包括用于条件表达式的COND表示法,其导致不必要的括号深度,并且使用数字零来表示空列表NIL和真值false。除了鼓励色情编程外,对地址0进行特殊解释也给后来的所有实施带来了困难。

他在说什么?

5 个答案:

答案 0 :(得分:20)

  

...零表示空列表...

因为0==()自1958年以来一直是色情作品的表情符号。

现在你知道了。

答案 1 :(得分:18)

太多实施细节在更高层次泄漏,即显示太多

答案 2 :(得分:9)

原始的Fortran III规范文档是1958年冬季发布的技术论文,描述了Fortran II语言的一些非常明确的补充,包括......内联汇编。

PDF为here

“添加”的诱人描述如下:

Extract from I.,Ziller, Additions to Fortran II, 1958

一些禁忌代码是

Pornographic programming using the un-released Fortran III

神秘地说,Fortran-III是never released to the public (see section 5.),但是在悄然消失之前以有限的方式传播。

答案 3 :(得分:6)

也许这是他谈论null references: the billion dollar mistake(T. Hoare)的方式。

答案 4 :(得分:6)

我认为它是关于混合数值和逻辑值,这仍然可以在流行的结构中看到,可能起源于Fortran,如while (1)。有很多"聪明的"依赖于这样一个事实的C算法,0是假的,而其他每个值都不是。

这同样适用于API调用,例如POSIX或Linux内核,其中一些在失败时返回0,而一些-1(经验法则,何时应用哪个,但它只是民间传说,所以经常被打破)。考虑到事实,在McCarthy那个时代,那些东西还没有发展,你可以看到他的预言"即便在这里。