相关疑难解决方法(0)

是否可以在Clojure中创建循环引用?

忽略本机互操作和瞬态,是否可以在Clojure中创建包含直接循环引用的任何数据结构?

似乎不可变数据结构只能包含对其自身先前版本的引用.是否有任何Clojure API可以创建一个引用自身的新数据结构?

Scheme具有letrec形式,允许创建相互递归的结构 - 但据我所知,Clojure没有任何类似的东西.

这个问题与将Clojure移植到iOS有关 - 它没有垃圾收集,但确实有引用计数.

clojure circular-reference

22
推荐指数
2
解决办法
1664
查看次数

Clojure宏将保存关联映射顺序

作为前言,我在Windows 7(64位)上运行Java版本6(更新33),使用clooj作为我的IDE.我没有尝试在任何其他系统中重现我的问题.我对Clojure很有经验,但对Java一点也不熟悉.

我试图解决的问题的全部内容很难描述,但它归结为:我想说我想制作一个带有一个参数的宏,一个关联映射,并返回一个元素的向量地图与他们的订单保存.

=>(defmacro vectorize-a-map
    [associative-map]
    (vec associative-map))
=>#'ns/vectorize-a-map
=>(vectorize-a-map {:a 1 :b 2 :c 3 :d 4 :e 5 :f 6 :g 7 :h 8}
=>[[:a 1] [:b 2] [:c 3] [:d 4] [:e 5] [:f 6] [:g 7] [:h 8]]
Run Code Online (Sandbox Code Playgroud)

这是有效的,但添加另一个元素到地图和订单搞砸...

=>(vectorize-a-map {:a 1 :b 2 :c 3 :d 4 :e 5 :f 6 :g 7 :h 8 :i 9}
=>[[:a 1] [:c 3] [:b 2] [:f 6] [:g 7] [:d 4] [:e 5] [:i 9] …
Run Code Online (Sandbox Code Playgroud)

macros associative-array casting clojure hashmap

6
推荐指数
1
解决办法
366
查看次数