Я новичок Clojure. Я пытаюсь получить две копии вектора карточных костюмов. Непостоянство DRY так, что я могу придумать этоПовторяющиеся векторы в Clojure
(def suits [:clubs :diamonds :hearts :spades])
(def two-times (concat suits suits))
Там должно быть более функциональным способом (даже если это займет больше символов :-)). Что, если я хочу N раз? Какие-либо предложения?
Все вещи, я стараюсь, как
(replicate 2 suits)
результатов в двух отдельных векторов:
([:clubs :diamonds :hearts :spades] [:clubs :diamonds :hearts :spades])
Как "сплющивающихся" структуру?
Там нет ничего нефункционального об использовании значения одного Var внутри 'def' формы СОЗДАНИЯ другой Вар. На самом деле, это естественная вещь, если второй Var зависит от первого. Конечно, если вам нужен общий метод конкатенации n копий seq, где n может быть или не быть заранее известно, тогда вам нужно лучшее решение (как показано в ответах здесь). –
На самом деле, вот что я имел в виду (N копий). Я согласен с тем, что моя двукратная функция является «функциональной» - это просто непрактично, если я хочу 100 копий :-). – Ralph