Как вы можете создать большой вложенный вектор без явной записи значений? - PullRequest
0 голосов
/ 23 мая 2019

Я хочу создать вложенный вектор [[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 голосов
/ 23 мая 2019

Спасибо @akond за помощь.Это работает:

(vec (for [i (range 100)] [(inc i) (rand-int 100)])))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...