如何在不显式记录值的情况下创建大型嵌套向量?

时间:2019-05-23 17:11:53

标签: clojure

我想创建一个嵌套向量[[1 randint1] [2 randint2] ...]直到100而不循环,但是我不确定是否可行。

我曾尝试创建多个哈希映射,但是一旦将它们存储在向量中,我就无法将内部映射也转换为向量。

(def rands (take 100 (repeatedly #(rand-int 100))))
(println (vec(map #(hash-map %1 %2) (range 100) rands)))

期望[[1 randint1] [2 randint2] ...]但得到[{1 randint1} {2 randint2} ...]

这是一个循环变体,可以产生正确的输出

(def foo {})

  (loop
    [i 1]    
    (when (< i 100)
      (def foo (conj foo [i (rand-int 100)]))
      (recur (inc i))))

1 个答案:

答案 0 :(得分:0)

感谢@akond的帮助。这有效:

(vec (for [i (range 100)] [(inc i) (rand-int 100)])))