1. 编译器宏 Lisp源代码文本,首先经过读取器,得到了一系列语法对象,这些语法对象,在宏展开阶段进行变换,最终...[作者空间]
1. 反引用 上文我们介绍了如何使用defmacro定义宏, 我们定义了inc宏,(inc x)会被展开为(set...[作者空间]
回顾 上文我们介绍了宏,它与函数是不同的,函数调用发生在程序执行期间,函数在调用之前,会先对它所有的实参进行求值,...[作者空间]
数据和代码 如果说Lisp语言有一个特性最能使人津津乐道的话,我想应该是它的宏系统(macro system)了吧...[作者空间]
1. 语义学 在计算理论中,形式语义学是关注计算模式和程序设计语言含义的严格的数学研究领域。语言的形式语义是用数学...[作者空间]
1. 符号 上文我们提到了Emacs Lisp是一种Lisp-2,即同一个符号(symbol)在不同的上下文中,可...[作者空间]
回顾 上文我们介绍了Emacs的用法,发现一分钟学会使用它并不是难事,而且,我们没有让快捷键束缚住,因为Emacs...[作者空间]
上文提到了编辑器之战,据江湖传说,Emacs被称为“神的编辑器”,Emacs有着无与伦比的可扩展性和可定制性,简直...[作者空间]
程序员大部分的时间都是在和代码打交道,因此,对于文本编辑器一定不会陌生了。编辑器是处理文本的工具。 就像趁手的兵器...[作者空间]
Lisp程序是用Lisp对象表示的,但是代码却是用文本形式来书写的,Lisp读取器会通过对象的read synta...[作者空间]
1. 带参数的模板 反引用(quasiquotation)是普通引用(quotation)的带参数版本,我们可以预...[作者空间]