clojure是一门基于jvm平台的函数式编程语言,是lisp方言的一种,继承了lisp的大部分风格,且能够和java进行调用,被称为现代化的lisp语言
交互式命令行REPL
R(read)、E(evaluate)、P(print)、L(loop)
clojure程序通常不需要一次性全部输入,而是通过REPL能够输入一个表达式代码则可以立刻验证
-
REPL启动
-
安装jdk,版本1.7+
-
安装leiningen,配置环境变量【LEIN_HOME】,并添加进path
-
cmd中启动REPL命令:lein repl
-
-
REPL变量
*1、*2、*3和*e分别保存最后一个、倒数第二个、倒数第三个成功读取的形式和最后一个错误
clojure语法要点
-
前缀表示法
(+ 1 2):表示1+2
(add 1 2):表示调用add方法,参数1和2
(def x 2):表示定义了一个变量名x,对应var空间的值为2
(defn test [] (println “hello clojure”)):表示定义了一个函数,函数名为test,参数形式为列表(空参),方法体为调用println方法,打印“hello clojure”
-
空格
clojure使用括号(以及花括号和方括号)分隔代码段,它不需要逗号来分隔列表元素,如果使用逗号也可以,因为clojure会将它们当成空格而忽略
**(+ 1 2 3 4 5 6)和(+,1,2,3,4,5,6)**是一种结果,都是对1到6的求和,没有什么实质差别
-
注释
和大部分Lisp系列语言一样,clojure的单行注释使用分号表示。要将一行文本变成注释,可在行首加上一个或多个分号
clojure提供了一个相当方便的宏,用于多行注释,这个宏称为comment,例如:
(comment (defn this-is-a-comment [x y] (+ x y))) ;;整个表达式将会被当做注释处理
-
大小写敏感
和大部分现代编程语言类似,clojure是大小写敏感的。但是,这个大部分Lisp语言不同,那些语言都是大小写不敏感的