Clojure 防止字符串变量被解构
这里的问题很简单,但它真的让我难堪 我在这里有一个小功能:Clojure 防止字符串变量被解构,clojure,Clojure,这里的问题很简单,但它真的让我难堪 我在这里有一个小功能: (defn something [start-url n] (loop [urls start-url index n] (if (= index 0) (set urls) (recur (flatten (pmap #(str *base-url* %) urls)) (dec index)))
(defn something
[start-url n]
(loop [urls start-url index n]
(if (= index 0)
(set urls)
(recur
(flatten (pmap #(str *base-url* %) urls))
(dec index)))))
我已经更改了代码的重要部分,但它基本上只需要映射一个字符串列表,然后重新出现。然而,当我启动循环时,URL会自然地将起始字符串分解成一个字符列表,这是我不想要的
同时,如果我
(loop [urls '(start-url) index n]
毫不奇怪,它返回的seq带有未计算的起始URL
我所要做的就是将我的起始url作为字符串保存。有什么想法吗?这一定很简单,但唉,这让我不知所措。执行(循环[url[start url]index n]…
应该将url
生成一个包含单个字符串start url
的向量,而无需进行解构
”(开始url)
不这样做的原因是引号应用于整个结构,包括开始url
(列表开始url)
应该可以工作,但在这种情况下向量通常更可取。是开始url
一个url还是它们的集合?我用一个url调用函数,但我想用它作为集合开始循环。哈哈,我做了(vec开始url)
甚至…啊,太接近了。但这是我需要的,谢谢!这很有意义。