约翰·麦卡锡所说的*色情节目*是什么意思?

问题描述 投票:0回答:5

Lisp 的历史中,McCarthy 写道:

解释器的意外出现往往会冻结语言的形式,并且为“递归函数......”论文做出的一些相当轻松的决定后来被证明是不幸的。其中包括条件表达式的 COND 表示法,这会导致不必要的括号深度,以及使用数字零来表示空列表 NIL 和真值 false。除了鼓励色情节目外,对地址0进行特殊解释也给后续的所有实现带来了困难。

他在说什么?

lisp terminology history
5个回答
23
投票
...零表示空列表...

因为

0==()

 自 1958 年以来一直是色情内容的表情符号。

现在你知道了。


20
投票
事实上,太多的实现细节在更高级别上被泄露,即显示得太多


10
投票
最初的 Fortran III 规范文档是 1958 年冬天发布的一篇技术论文,描述了对 Fortran II 语言的一些非常明确的补充,包括……内联汇编。

PDF 在这里

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

Extract from I.,Ziller, Additions to Fortran II, 1958一些禁忌代码是

Pornographic programming using the un-released Fortran III令人神秘的是,Fortran-III

从未向公众发布(参见第 5 节)

,而是以有限的方式传播,然后悄然消失。


7
投票
while (1)

。有很多“聪明”的 C 算法,它们依赖于这样一个事实:0 是假的,而其他所有值都不是。


这同样适用于 API 调用,例如在 POSIX 或 Linux 内核中,其中一些在失败时返回 0,而一些则返回 -1(有一个经验法则,何时应用哪个,但这只是民间传说,所以通常它被打破)。考虑到麦卡锡时代这些东西还没有发展起来,你甚至可以在这里看到他的“预言”力量。


5
投票
空引用:价值数十亿美元的错误

(T. Hoare)的方式。

© www.soinside.com 2019 - 2024. All rights reserved.