背景 平时我们写代码的时候,字符串通常会被当做 “数据” 或 “配置” 来使用,几乎不会被用来表示一段 “业务逻辑”。比如,当我们实现阶乘 n!...
背景 平时我们写代码的时候,字符串通常会被当做 “数据” 或 “配置” 来使用,几乎不会被用来表示一段 “业务逻辑”。比如,当我们实现阶乘 n!...
The syntax of a Racket program is defined by Racket 程序的语法是这样定义的, a read p...
Racket evaluation can be viewed as the simplification of expressions to o...
Chez Scheme以前是个人项目,现在开源了,由Cisco公司维护,cisco/ChezScheme 本文介绍它的安装和使用方法。 1. 下...
1. 编译器宏 Lisp源代码文本,首先经过读取器,得到了一系列语法对象,这些语法对象,在宏展开阶段进行变换,最终由编译器/解释器继续处理。 以...
1. 反引用 上文我们介绍了如何使用defmacro定义宏, 我们定义了inc宏,(inc x)会被展开为(setq x (1+ x)),因此,...
回顾 上文我们介绍了宏,它与函数是不同的,函数调用发生在程序执行期间,函数在调用之前,会先对它所有的实参进行求值,然后将形参绑定到这些实参的求值...
数据和代码 如果说Lisp语言有一个特性最能使人津津乐道的话,我想应该是它的宏系统(macro system)了吧,在Lisp语言中,程序和代码...
1. 语义学 在计算理论中,形式语义学是关注计算模式和程序设计语言含义的严格的数学研究领域。语言的形式语义是用数学模型去表达该语言描述的可能计算...
1. 符号 上文我们提到了Emacs Lisp是一种Lisp-2,即同一个符号(symbol)在不同的上下文中,可以分别表示两种不同的值(val...