gpt4 book ai didi

lisp - 什么是 "Lisp program that writes other programs"?

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

在阅读 Paul Graham's Essays 时, 我对 Lisp 越来越好奇了。

this article ,他提到最强大的功能之一是您可以编写可以编写其他程序的程序

我无法在他的网站或其他地方找到直观的解释。是否有一些最小的 Lisp 程序显示了如何完成此操作的示例?或者,您能用文字解释一下这到底是什么意思吗?

最佳答案

Lisp 是 homoiconic .这是一个构建表示总和的 s 表达式的函数。

(defun makes(x) (list '+ x 2))

所以 (makes 5) 的计算结果为 (+ 5 2) 这是一个有效的 s 表达式。您可以将其传递给 eval

还有更复杂的 Lisp 宏示例。另见 this .阅读有关 Evaluation and Compilation 的部分Common Lisp HyperSpec(还请注意它的 compiledefmacroeval 形式)。注意 multi-staged programming .

强烈推荐阅读SICP (可免费下载)然后 Lisp In Small Pieces .您还可以享受阅读 Gödel, Escher, Bach....和 J.Pitrat 的博客 Bootstrapping Artificial Intelligence .

顺便说一句,在 POSIX 上使用 C,您还可以编写程序 generating C 代码(或使用 GCCJITLLVM ),将生成的代码编译为插件,然后 dlopen -正在处理它。

关于lisp - 什么是 "Lisp program that writes other programs"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51773487/

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