Как бы вы поместили ценности из списка или вектора в карту?Вернуть карту из списка значений в Clojure
я делаю это следующим образом, но это не кажется простым:
user=> (into {} (map #(into [] %) (partition 2 [1 2 3 4 5 6])))
{1 2, 3 4, 5 6}
user=>
Или, если я хотел бы также иметь дело с нечетным числом значений (хотя, возможно, не стоит, но, возможно, сохранить ключи):
user=> (into {} (map #(if (even? (count %))
#_=> (into [] %)
#_=> [(first %) nil])
#_=> (partition-all 2 [1 2 3 4 5])))
{1 2, 3 4, 5 nil}
user=>
Есть ли более простой способ сделать это?
Первый может быть выполнен с помощью '(применить хэш-карту [1 2 3 4 5 6])'. – Tomo
Отлично, спасибо @Tomo. Я полагаю, что, используя ваш совет, я могу достичь второго с помощью чего-то вроде '(примените хеш-карту (пусть [a [1 2 3 4 5]] (если (нечетное? (Count a)) (conj a nil) a))) '. Не стесняйтесь поместить его в формат ответа. – pestrella
Посмотрим, сможет ли кто-нибудь умнее меня ответить на него лучше. :) – Tomo