我试图用带有转义的逗号解析clojure中的csv字符串,并且没有引用像这样的字段
"test1\,test2,test3"
Run Code Online (Sandbox Code Playgroud)
我试过这个库:
但他们似乎都没有能够正确认识到这一点,因为["test1,test2" "test3"]
有人知道一个可以做到这一点的图书馆吗?
提前致谢
我在refs中有两个映射,并希望在一个事务中将它们相互关联.
我的功能看起来像这样:
(defn assoc-two
[one two]
(let [newone (assoc @one :two two)
newtwo (assoc @two :one one)]
(ref-set one newone)
(ref-set two newtwo)))
Run Code Online (Sandbox Code Playgroud)
现在我这样打电话assoc-two:
(dosync (assoc-two (ref {}) (ref {})))
Run Code Online (Sandbox Code Playgroud)
我现在得到和StackOverflowError.
我也试过这个:
(defn alter-two
[one two]
(alter one assoc :two two)
(alter two assoc :one one))
Run Code Online (Sandbox Code Playgroud)
有没有这样做的方式one有一个条目参考two,反之亦然,仍然在一个交易中?
我正在读取yaml文件中的数据,这会产生如下数据:
{:test1 (1 2 3)}
Run Code Online (Sandbox Code Playgroud)
我可以查找密钥:test1并获得clojure.lang.LazySeq元素1 2 3.但是当我想在宏中使用这些数据时,它会扩展为函数调用而不是引用列表.
例如:
(defmacro mmerge
[map1 map2]
`(assoc ~(merge map1 map2) :merged true))
(mmerge {:test1 (1 2 3)} {:test2 (4 5 6)})
Run Code Online (Sandbox Code Playgroud)
这扩展到:
(clojure.core/assoc {:test2 (4 5 6), :test1 (1 2 3)} :merged true)
Run Code Online (Sandbox Code Playgroud)
是否有可能以某种方式让这个工作?
提前致谢