Как Вы преобразовываете список чисел в карту?

Вы не ОТПРАВЛЯЕТЕ сертификат SSL. Кажется, что существует проблема с сертификатом SSL, поскольку это установлено на хосте, с которым Вы связываетесь. Используйте опцию-k или - небезопасный, для заканчивания жалобы.

А-ч. См. ответ Ryan Graham

6
задан dbr 16 October 2009 в 20:48
поделиться

4 ответа

Вы можете сделать что-то вроде этого с помощью функции zipmap:

(zipmap '(1 2 3 4) (repeat 0))
=> {4 0, 3 0, 2 0, 1 0}

zipmap принимает список ключей и список значений и преобразует их в карту. Функция repeat создает бесконечную последовательность нулей. zipmap останавливается, когда достигает конца более короткого списка, поэтому просто не передавайте ему две бесконечные последовательности :)

15
ответ дан 8 December 2019 в 13:00
поделиться

Вы также можете создать функцию с помощью zipmap Джеймса:

Clojure=> (defn map-to-n [n] (zipmap (range 1 n) (repeat 0)))
#'user/map-to-n
Clojure=> (map-to-n 10)
{9 0, 8 0, 7 0, 6 0, 5 0, 4 0, 3 0, 2 0, 1 0}
1
ответ дан 8 December 2019 в 13:00
поделиться

Более общий шаблон для этого - использовать (применить список коллекций для создания коллекции. Все коллекции Clojure имеют «конструкторы» или функции создания, которые принимают переменный номер аргументов и возврата показывает, что аргументы объединены в коллекцию. Если ваши аргументы уже заключены в другую коллекцию, тогда apply - удобный способ извлечь их из коллекции и передать их в функцию создания в качестве аргументов.

намного больше работы, поэтому у нас есть функции-оболочки, такие как zipmap.

1
ответ дан 8 December 2019 в 13:00
поделиться

Wow I didn't know about zipmap, thats useful

I would have done it like this

(apply hash-map (interleave '(1 2 3 4)  (repeat 0)))
1
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: