Lisp 如何从lambda到函数?(口齿不清)

Lisp 如何从lambda到函数?(口齿不清),lisp,Lisp,是否有任何LISP书籍可以向您展示如何从Lambda演算到基本的存储函数,如读取文件、更改目录、生成字符串等 编辑:不是寻找关于执行包含函数的教程,而是想了解如何在LISP中编写一个低级函数,它可以处理文件和创建字符串。如果您正在寻找一本书,该书侧重于LISP中的实际编程任务,包括文件处理,我可以推荐实用公共Lisp“Peter Seibel-参见谢谢,我已经看过了,它展示了如何执行已经包含的函数,但我想知道如何编写这些基本函数的自己版本?如果LISP是基于lambda的,lambda可以累加地

是否有任何LISP书籍可以向您展示如何从Lambda演算到基本的存储函数,如读取文件、更改目录、生成字符串等


编辑:不是寻找关于执行包含函数的教程,而是想了解如何在LISP中编写一个低级函数,它可以处理文件和创建字符串。

如果您正在寻找一本书,该书侧重于LISP中的实际编程任务,包括文件处理,我可以推荐实用公共Lisp“Peter Seibel-参见

谢谢,我已经看过了,它展示了如何执行已经包含的函数,但我想知道如何编写这些基本函数的自己版本?如果LISP是基于lambda的,lambda可以累加地做所有的事情,那么有没有什么东西可以显示从lambda到文件处理的过程?有人可能会说,文件本质上是副作用的化身,而且,lambda演算并不真正关心副作用。因此,试图在lambda演算的范围内生成文件对我来说是一个非常有趣的练习:-)也就是说,我发现了一个名为的演示,所以你可能可以在那里找到一些答案。有趣是指不可能?Lol idk虽然-副作用是在函数执行时,函数外部的状态发生变化-但是所有函数都有输入和输出,所以需要做的就是将输入/输出变成一个文件。但我也看到了一个例子,其中C用于构建一个新的LISP,因此为了硬件集成,它可能需要一个较低级别的语言。我刚刚看到了链接,我将查看它。我只知道LISP的两个半实现(HCL、KCL、部分ECL)能够自信地说出他们是如何实现文件处理的——正如你所说,他们建立在一种较低级别的语言(C)和/或用于实现文件功能的操作系统上。Lambda演算永远不会比现在做得更多。您可以使用函数对内容进行编码,以便让它计算下一次日食或下一次大素数,但它永远不会访问文件。为此,您需要更多的基本体。这些原语并没有赋予语言更多的计算能力,但实际功能并不需要图灵完全。@Sylvester啊,我明白了。我的印象是LISP一开始是自己做这些事情的;这是一个学术问题。当John McCarthy和他的团队实现Lisp时,他们甚至不理解lambda演算,因此他们的lambda缺乏词法范围。早期的Lisp系统使用汇编语言连接主机系统的硬件或操作系统。CONS、CAR和CDR等基本函数将用汇编语言或机器语言编写。这就是为什么CAR和CDR的名称来自机器语言指令/功能。在moder Lisp系统上,我们可以使用“FFI”(外部函数接口)支持动态生成绑定以调用二进制函数接口(通常由主机平台的C编译器定义)。