gpt4 book ai didi

lisp - lisp 中的自定义 '+'(求和)函数

转载 作者:太空宇宙 更新时间:2023-11-03 18:35:56 28 4
gpt4 key购买 nike

我正在阅读 Paul Graham 的 Lisp 之根,他声称任何 lisp 功能都可以通过这 7 个基本函数的组合来构建:quote、atom、eq、cond、cons、car、cdr。

问题:Lisp 方言真的完全基于这些功能吗?我们如何使用上述 7 个原始函数定义一个“sum”或“plus”函数?例如我们自己的 (+ 1 2) 函数

注意:我完全是 Lisp 的新手,但我也开始对这门语言感到非常兴奋。这个问题的目的纯粹是出于真正的兴趣

最佳答案

作者引用了图灵奖和Lisp的发明者John McCarthy在1960年写的一篇非常著名的论文“Recursive Functions of Symbolic Expressions and Their Computation by Machine” ,其中他将 Lisp 的语义定义为一种新的计算形式主义,其功能等同于图灵机。

在论文中(以及在 Lisp 1.5 Manual 中)McCarthy 描述了该语言的解释器,仅使用 Graham 提到的七个原始函数即可完全编写。

该语言主要用于符号计算,论文中介绍的解释器仅涉及这些计算,不求助于数字或不同于原子和对的其他数据类型。

正如 Graham 在《Root of Lisp》第 11 页的注释中所说,“可以在 McCarthy 1960 年的 Lisp 中进行算术运算,例如使用n 个原子的列表来表示数字 n”,因此执行求和等同于附加两个列表。

当然,这种做法效率很低:它的出现只是为了展示与其他计算形​​式的等价性,在真正的解释器/编译器中,整数像往常一样表示,并具有通常的运算符。

关于lisp - lisp 中的自定义 '+'(求和)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39093549/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com