Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 两个符号可以绑定到同一个变量吗?_Clojure - Fatal编程技术网

Clojure 两个符号可以绑定到同一个变量吗?

Clojure 两个符号可以绑定到同一个变量吗?,clojure,Clojure,在clojure,这是真的吗 (= #'x #'y) 不起作用的示例: user> (def x 1) #'user/x user> (def y x) #'user/y user> (= #'x #'y) false user> (def y #'x) #'user/y user> (= #'x #'y) false 您这样做是为了创建可变对象的单例吗?如果不是,为什么?每个def都在创建一个新的var,新的var将不等于任何其他varvar@muhu

在clojure,这是真的吗

(= #'x #'y)    
不起作用的示例:

user> (def x 1)
#'user/x
user> (def y x)
#'user/y
user> (= #'x #'y)
false
user> (def y #'x)
#'user/y
user> (= #'x #'y)
false

您这样做是为了创建可变对象的单例吗?如果不是,为什么?每个def都在创建一个新的var,新的var将不等于任何其他varvar@muhuk我不想这样做。我只是想知道这是否可能,为什么不可能。@Bill如果你勾选了
(=y#'x)
,那就对了。所以我假设您对两个变量相等感兴趣。@muhuk Var的三参数构造函数指定第三个变量中的值。这正是使用两个参数调用def时所设置的值。
(refer 'clojure.core :only '[=] :rename '{= equal?})

(= #'= #'equal?)
;= true