防止字符串变量被解构
Keeping a string variable from being destructured
这里的问题很简单,但它真的难倒了我。
我这里有一个小功能:
(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)))))
我已经更改了代码的重要部分,但它基本上只需要映射一个字符串列表,然后重复出现。但是,当我开始循环时,urls 自然会将 start-string 解构为一个字符列表,这是我不想要的。
同时,如果我这样做
(loop [urls '(start-url) index n]
不出所料 returns 具有未评估的开始的 seq-urls.
我只想把我的 start-url 保存为一个字符串。有任何想法吗?一定很简单,可惜,我是在逃避。
执行 (loop [urls [start-url] index n] ...
应该使 urls
成为包含单个字符串 start-url
的向量,而无需解构。
'(start-url)
不这样做的原因是引用适用于整个结构,包括 start-url
。 (list start-url)
应该可以,但在这种情况下通常最好使用向量。
这里的问题很简单,但它真的难倒了我。
我这里有一个小功能:
(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)))))
我已经更改了代码的重要部分,但它基本上只需要映射一个字符串列表,然后重复出现。但是,当我开始循环时,urls 自然会将 start-string 解构为一个字符列表,这是我不想要的。
同时,如果我这样做
(loop [urls '(start-url) index n]
不出所料 returns 具有未评估的开始的 seq-urls.
我只想把我的 start-url 保存为一个字符串。有任何想法吗?一定很简单,可惜,我是在逃避。
执行 (loop [urls [start-url] index n] ...
应该使 urls
成为包含单个字符串 start-url
的向量,而无需解构。
'(start-url)
不这样做的原因是引用适用于整个结构,包括 start-url
。 (list start-url)
应该可以,但在这种情况下通常最好使用向量。