首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Clojure细节之form跟special form的区别

2012-12-28 
Clojure细节之form和special form的区别前言??? 在lisp程序员看来,form和special form的区别是一目了然而

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的不同.

?

?

?

热点排行