2011-12-17 45 views
25

History of Lisp,麥卡錫寫道:John McCarthy通過*色情節目*得到了什麼?

一個解釋的意外出現趨於凍結語言的形式,和一些決定的作出,而輕鬆愉快的``遞歸函數......「」紙後來證明不幸。這些包括用於條件表達式的COND表示法,其導致不必要的括號深度,並且使用數字0來表示空列表NIL和真值false。除了鼓勵色情節目以外,對地址0給予特別的解釋在所有後續的實施中造成了困難。

他在說什麼?

回答

18

太多的實現細節都處於較高的水平滲漏,即顯示了太多

+0

那麼*色情程序設計*會是任何超出其正確語義級別的代碼,如內聯程序集? –

+16

這似乎是有道理的:使用*親密知識*的代碼。 –

+2

我很喜歡......「揭露你的私生活」 – csauve

6

,我認爲它是關於混合數字和邏輯值,它仍然可以在流行的結構可以看到的事實,可能起源於Fortran,如while (1)。有很多「聰明」的C算法,依賴於這樣一個事實,即0是錯誤的,而其他每個值都不是。

這同樣適用於API調用,就像在POSIX或Linux內核中一樣,其中一些在失敗時返回0,而另一些則返回0(有一個經驗法則,什麼時候應用哪個,但它只是民間傳說,它經常被打破)。考慮到這個事實,在麥卡錫時代,這些事情還沒有發展起來,你甚至可以在這裏看到他的「預言」權力。

19

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

,因爲自1958年以來

現在你知道0==()一直是色情的表情。

+1

非常好,最有趣的SE帖子之一。另見[this](http://math.stackexchange.com/a/74348/86776),[this](http://math.stackexchange.com/a/54568/86776)和[this](http: //math.stackexchange.com/questions/689619/how-to-find-the-equation-of-one-curve-in-xy-plan-which-satisfies-such-functions)。 :-) – mvw

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.),但以有限的方式傳播b在安靜地消失之前。

+0

優秀。時間的尼克! –

+0

哇謝謝!我的第一個賞金arrr –

+0

不客氣。感謝您挖掘它!我即將讓這筆賞金到期。 –

相關問題