Clojure犀利的报价?

Clojure犀利的报价?,clojure,Clojure,我们知道Clojure是一个Lisp-1,也就是说,没有单独的函数和变量名称空间 我是从公共Lisp的角度来看这个问题的,它是一个Lisp-2 我试图理解元数据,但对以下内容感到困惑: user=>def^Integer my 3 '用户/我的 user=>metamy 无 user=>meta“我的” {:tag java.lang.Integer,:第1行,:第1列,:file NO_SOURCE_file,:name my,:ns object[clojure.lang.Namespace

我们知道Clojure是一个Lisp-1,也就是说,没有单独的函数和变量名称空间

我是从公共Lisp的角度来看这个问题的,它是一个Lisp-2

我试图理解元数据,但对以下内容感到困惑:

user=>def^Integer my 3 '用户/我的 user=>metamy 无 user=>meta“我的” {:tag java.lang.Integer,:第1行,:第1列,:file NO_SOURCE_file,:name my,:ns object[clojure.lang.Namespace 0x1d5a857d user]} user=>def myatom atom for[x[1 2 3]]^{:key'foo}x '用户/myatom user=>@myatom 1 2 3 user=>first@myatom 1. user=>meta-first@myatom 无 user=>meta'first@myatom 读取时的RuntimeException EOF,从第1行clojure.lang.Util.RuntimeException Util.java开始:221 RuntimeException不匹配分隔符:clojure.lang.Util.RuntimeException Util.java:221 在《Clojure》中,尖锐的引语扮演什么角色

另外,关于元数据,我对以下内容感到有点困惑:

儿童:[:ul[:li][:li][:li][:li][:li]] 键入:[:ul[^3[:li]^4[:li]^5[:li]^6[:li]] 这来自《专业Clojure》一书中的clojurescript/试剂一章。第二行是普通的Clojure元数据语法,还是仅作为试剂宏的结果才有效

在repl进行更多的实验:

用户=>^1[2] IllegalArgumentException元数据必须是符号、关键字、字符串或映射clojure.lang.LispReader$MetaReader.invoke LispReader.java:798 用户=>^:a[1] [2][1] 用户=>^:a[1] [1] user=>meta^:a[1] {:真的} 用户=>
第二行似乎有点奇怪,但在第一个例子中,除非它有帮助,否则可能没关系。

使用尖锐的引语,如“my是编写var my的简写。”

var返回符号my指向的var对象。请注意,var是Clojure的特殊形式,其行为与常规函数调用不同

有关Clojure中符号、变量和值的详细信息,请参见此问题:

另见:


使用像“my”这样尖锐的引语是编写var my的简写

var返回符号my指向的var对象。请注意,var是Clojure的特殊形式,其行为与常规函数调用不同

有关Clojure中符号、变量和值的详细信息,请参见此问题:

另见: