2015-06-02 44 views
1

這裏很簡單的問題,但它真的讓我起來。保持一個字符串變量從解構

我有一個小的功能在這裏:

(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自然地將起始字符串解構成字符列表,這是我不想要的。

與此同時,如果我做

(loop [urls '(start-url) index n] 

它意料之中返回與未計算的起始網址起。

我想要做的就是帶上我的開始url並將其保存爲一個字符串。有任何想法嗎?它一定很簡單,但唉,它逃避了我。

+0

'start-url'是一個URL還是它們的集合? – noisesmith

+0

我打電話給一個網址的功能,但我想開始作爲一個集合的循環。 – Caleb

回答

2

(loop [urls [start-url] index n] ...應該使urls成爲一個包含單個字符串start-url的矢量,而沒有解構。

原因'(start-url)不一樣的是,報價適用於整個結構,包括start-url(list start-url)應該可以工作,但在這種情況下,矢量通常更可取。

+0

哈哈我做過'(vec start-url)',甚至......那麼近啊。但是,這是我需要的感謝!這說得通。 – Caleb