3. What is clojure? A dynamic programming language for JVM Clojure is a Lisp Clojure is functional Supporting Concurrency Designed for the JVM History 3 years in development,released 10/2007 Authror: Rich Hickey Homepage: http://clojure.org 3
4. Clojure is a Lisp Clojure是Lisp的一种方言,就像scheme、common lisp也是Lisp的方言一样。 Clojure同样也是Homoiconicity(同像性) Homoiconicity:编程语言的一种属性,是指该语言的基本表现形式本身同时也是该语言自身的数据结构。 Homoiconicity使得元编程更容易 Code vs. Data 小核心 Sequences抽象 宏(macro) 非OO模型 4
12. Symbols 可以理解成变量,绑定特定的值 user=> a java.lang.Exception: Unable to resolve symbol: a in this context (NO_SOURCE_FILE:0) user=> (def a 1) #'user/a user=> a 1 user=> (let [a 1] a) 1 user=> (binding [a 2] a) 2 2010-08-10 淘宝内部分享-伯岩 12
14. Special forms (def name init-value?) 定义全局变量 (if test then-expr else-expr) 条件语句 (quote form) 返回不会被执行的form (fn name? ([params* ] exprs*)+) 定义函数 其他:let loop recur do new . throw try set! var 14