【发布时间】:2011-04-29 13:59:54
【问题描述】:
在 Lisp 中,任何程序的代码实际上都是有效的数据结构。例如,这将 1 和 2 相加,但它也是一个包含三个项目的列表。
(+ 1 2)
这有什么好处?是什么让您能够做到在其他语言中是不可能和/或不太优雅的?
【问题讨论】:
-
这可能会被当作骗子关闭...(stackoverflow.com/search?q=%5Blisp%5D+macros) 这是维基百科上相关的 sn-p:en.wikipedia.org/wiki/… Peter Seibel 的 Practical Common Lisp 是对 Common Lisp 的一个非常好的介绍并包括演示宏的早期章节:gigamonkeys.com/book/practical-a-simple-database.html
-
这个问题似乎倒退了:你正在接受 Lisp 设计的结果并询问如何处理它。在实践中,我从做事开始。 (在 Java 中,一个 int 是 32 位的——这有什么好处?好吧,我们可能可以列出一些,但它们看起来很人为,因为没有 Java 程序员会从这个方向考虑它。)
-
@Ken 我肯定知道你来自哪里。但是,出于好奇,我问这个问题。我已经在用其他语言做事,而且我从来没有觉得我的代码需要成为数据。我只是想知道我错过了什么,Eli 做了很棒的解释。
标签: lisp