[224] Lisp

Title Text:We lost the documentation on quantum mechanics. You’ll have to decode the regexes yourself.

Origin:https://xkcd.com/224/

https://www.explainxkcd.com/wiki/index.php/224:_Lisp

Lisp

我們把量子力學的文件搞丟了,你得自己拆解那些正規表示式。

https://xkcd.tw/224

Lisp是一种计算机编程语言,具有简单,高度规则的语法。该语言最显着的特征是程序采用与语言主要数据结构(链表)相同的形式。这模糊了代码和数据之间的界限,允许程序检查甚至改变自己的源代码,从而为元编程提供了深刻的机会。 Lisp也是一种函数式编程语言(虽然不像一些更新的语言那样纯函数式),这意味着程序用简单的阐述或lambda演算的扩展来表达,这是一种正式的计算数学模型。这使得用Lisp等函数式语言编写的程序成为一种独特的抽象数学形式,通常被认为难以完全理解(见1270:功能)。

短语A fullusion of blue是对Douglas Adams的书“The Long Dark Tea-Time of the Soul”的引用。在其中,I Ching计算器计算出高于值4的所有内容都是黄色的。

在漫画中,Cueball对他在梦中所看到的创造语言的基本和完整性质感到惊奇。在Lisp编程语言中,“car”是一个原始(即基本)函数,它产生列表中的第一个项目。 “我的上帝,它充满’汽车’”是一个双关语,很可能指的是电影2010:The Year We Make Contact,续集2001:A Space Odyssey。在2001年的“宇宙奥德赛”一书中,当宇航员大卫鲍曼不小心激活一个星门时,他在进入它时感叹道:“这个东西是空洞的”,它永远地继续下去了?“ – 我的上帝 – 它充满了星星!”虽然他在最后的序列中没有在第一部电影中说什么。

在第二个小组中,Cueball评论道,“就像他们说的那样,我立刻感受到了很大的启蒙。”这是对程序员和计算机科学家观察模式的一种参考,虽然Lisp经常看起来像是外来的或神秘的 – 甚至故意如此,即使是经验丰富的黑客,即使随着时间的推移反复曝光 – 真正理解Lisp的深层次,非表面的方式,导致深刻的顿悟,突然和持久的照明,其中一个关于计算和编程的先入为主的观念从根本上变形,通常在很短的跨度过程中,例如在单日全天黑客攻击期间。 Lispers通常将这种体验描述为类似于第一次学习编程; Daniel P. Friedman(许多突破性研究的作者和许多关于Lisp和编程语言设计的流行入门文章)将其描述为“[学习]以递归方式思考”,并争辩说“思考[功能]计算是其中之一人类大脑能做的最激动人心的事情。“

Cueball关于模式,元模式和语法消失的评论是对Lisp编程语言优雅简洁的反应,其中使用简单的递归结构细化构建非常复杂的程序相对容易。这基本上不同于更典型和常见的命令式编程语言,其中程序被编写为机器遵循的指令链。

上帝回答说,宇宙实际上是与编程语言Perl一起被黑客攻击的。 Perl采用了一种特殊的语法,可以从许多其他语言中自由借用。尽管通常用于快速组装项目的多功能语言(备受喜爱的Programming Perl将其称为“完成工作的语言”),但Perl以丑陋和不优雅的名声而闻名,部分原因在于它的pidgin – 许多不一致的语言元素和代码样式的融合。它被称为“瑞士军队电锯”,因为它非常强大,但也很笨重,没有吸引力。与上面的丹尼尔弗里德曼形成鲜明对比的是,Perl的创始人拉里沃尔批评了高度思想的Lisp对编程的态度。

“根据政策,LISP从未真正迎合凡人。

而且,当然,凡人都没有真正原谅LISP没有迎合他们。“

开玩笑的是,与许多软件开发人员一样,Creator有点匆忙,选择快速拼凑出一个工作原型,而不是从一开始就做好工作;同时,Cueball认为他在隐藏的Lisp世界中发现了一个惊人而美丽的秘密,他们了解到实际上现实世界充满了丑陋的黑客和快速而肮脏的命令式代码。一个(可能的)隐藏的笑话可能是对格林斯普的第十条规则的一种倾斜的提法,当上帝回答“我的意思是,表面上是,是的”。 Greenspun的第十条规则表明,用另一种高级编程语言编写的任何足够复杂的程序都必然包含大约一半Common Lisp的不完美,无记录,缓慢且错误的实现。 Greenspun的第十条规则旨在表达这样的信念:Common Lisp是一种大型的,功能齐全的Lisp方言,非常灵活和强大,任何尝试在大多数其他语言中呈现任何真正复杂的程序都需要程序员在不知不觉中重新发明非凡的努力,在Common Lisp中,在不必要的复杂时尚,功能和系统中将是优雅和微不足道的。这就解释了为什么这样的程序对于一个不熟悉的观察者来说可能看起来或感觉“痴迷”,为什么宇宙(如果被视为这样一个程序)可能会让数学家和科学家看起来好像它可能有一个非常简单的数学基础,即使在现实它只是与一堆ersatz,特殊情况规则一起被黑客入侵。

标题文本通过建议量子力学理论用正则表达式(“regexes”)编写,这是一种复杂的Perl模式匹配语言。正则表达式经常被批评为只写语言,也就是说,语法如此复杂,以至于任何人都无法理解其中编写的任何重要程序(通常甚至不是原作者)。文档对于帮助理解复杂的正则表达式至关重要。标题文本声称,在某些时候,量子力学的文档丢失了,这解释了为什么量子力学是如此离奇和违反直觉。

Leave a Reply

Your email address will not be published. Required fields are marked *

Categories