Clojure中的#可真是身兼多职,这里总结一下。
(注:本文部分代码来自《Clojure Programming》中文版)
正则表达式
Clojure里面把以#开头的字符串当做正则表达式。user=> (re-seq #"(\d+)-(\d+)" "1-3") ;= (["1-3" "1" "3"])
注释
形式级别的注释#_宏。user=> (read-string "(+ 1 2 #_(* 2 2) 8)") ;= (+ 1 2 8)
Set字面量
#{1 2 3} user=> (class #{1 2 3}) ;= clojure.lang.PersistentHashSet
匿名函数
user=> (map #(inc %) [1 2 3]) ;= (2 3 4)