读书人

Clojure细节之form跟special form的区

发布时间: 2012-12-28 10:29:04 作者: rapoo

Clojure细节之form和special form的区别
前言

??? 在lisp程序员看来,form和special form的区别是一目了然而且无需解释的--因为这两个

概念本身就源自lisp.但对于指令式语言的开发人员而言,当他们进入clojure的世界中,会不

断看到和听到这两个名词,然后会把special form理解为某种关键字或者是宏之类的东西.

这样的理解实际上是有一定偏差的.

form

??? 首先让我们来看看Clojure中的form,最简单的form就是由函数和它的参数们构成:

(if (= a 1) (println 1) (println 2))

??? 如果我们按照form的方式求值,那么明显地,后面的两个打印函数都会执行;但实际的运行中

只会有一个打印结果,也就代表着只会对某个打印函数求值而不是两个都同时求值,这样也充分

体现了special form和form的不同.

?

?

?

读书人网 >编程

热点推荐