clojure基础知识
1 变量
1.1 全局变量
全局变量的作用域为当其所在的命名空间 (def var-name var-value)
1.2 局部变量
(let [a b] (expression))
2 引用(quote)或'
对于不想要进行求值的表达式,可以使用(quote xxx)或者前面加个'
3 语法引用(Syntax-quote)或`
同样表示不要对表达式进行求值.
但是还有两点不同
把无命名空间限定的符号求值为全命名空间的符号:
- 如果符号已经被声明, 那么求值为对应命名空间
- 如果未被声明, 求值为当前命名空间
(in-ns 'test) |
允许 反引用 , 即在语引用的表达式中, 可以选择性地使用反引用对某一部分进行求值
4 反引用(~)
5 splicing unquote(~@)
~@ inserts the values of a sequence consecutively into a parent sequence