clojure入门(2)——语法与数据结构
##clojure入门(2)——语法与数据结构
###特点
- 动态类型
- 前缀表达式
- 小括号定义代码范围
- 注释
;
- 逗号=空格
###数据
- 空
nil
- 数字
- 字符
\c
- 字符串
"abc"
- 关键字
:a :1
- 列表 list
'(1 2 3)
- 向量 vector
[1 2 3]
- 表 map
{:ab 12 :12 "ab"}
- 集合 set
#{1 2 3}
- 正则表达式
#"pattern[0-1]"
###绑定(赋值)
- 全局变量
(def a 1) (def x {:a 1 :b 2})
- 局部变量
(let [a 1 x {:a 1 :b 2}] (prn a x))
- 解构
(let [{:keys [a b c] :or {a 1 c 1}} {:a 1 :b 2} [_ y z] [1 2 3]] (prn a b c y z))
###函数
(def my-prn0 (fn [a] (prn a)))
(defn my-prn1 [a] (prn a))
(defn my-prn2 [a & other] (prn a other)) ;可变参数
(defn my-prn3 [[_ a b]] (prn a b)) ;可直接对入参解构