保持字符串变量不被破坏

时间:2015-06-02 02:10:14

标签: clojure

这里非常简单的问题,但它确实让我很难过。

我在这里有一个小功能:

GRASS_BATCH_JOB

我已经更改了代码的重要部分,但它基本上只需要映射字符串列表,然后重复。但是,当我开始循环时,网址会自然地将start-string结构化为一个字符列表,这是我不想要的。

与此同时,如果我做了

(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)))))

毫无疑问,使用未评估的start-urls返回seq。

我想做的就是把我的start-url保存为字符串。有任何想法吗?它必须非常简单,但是,它正在逃避我。

1 个答案:

答案 0 :(得分:2)

执行(loop [urls [start-url] index n] ...会使urls成为包含单个字符串start-url的向量,而不会进行解构。

'(start-url)不这样做的原因是引用适用于整个结构,包括start-url(list start-url)应该有效,但在这种情况下,矢量通常更可取。