Обработка пар значений от двух последовательностей в Clojure

Ключевое слово new сообщает компилятору, что ваше определение скрывает определение, содержащееся в интерфейсах, которые может расширять ваш интерфейс.

8
задан Thomas 17 June 2009 в 19:20
поделиться

3 ответа

Другой способ - просто использовать карту вместе с некоторой функцией, которая собирает свои аргументы в последовательности, например:

user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])
12
ответ дан 5 December 2019 в 08:54
поделиться
(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}

Итерация по картам происходит попарно, например, так:

(doseq [[k v] (zipmap [:a :b :c] (range 3))]
  (printf "key: %s, value: %s\n" k v))

выводит:

key: :c, value: 2
key: :b, value: 1
key: :a, value: 0
4
ответ дан 5 December 2019 в 08:54
поделиться

На вопрос был дан ответ, но есть еще чередование , которое также обрабатывает произвольное количество последовательностей, но не группирует полученную последовательность в кортежи (но вы можете использовать раздел для этого).

3
ответ дан 5 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

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