Этот ответ проясняет способ, которым «в» и «кон» взаимосвязаны в данном случае, чтобы обеспечить приемлемые решения вашей проблемы.То есть он стоит на плечах предыдущих ответов ..
У вас есть список в формате:
( {key1 value1}
{key2 value2} )
И вам нужна карта, которая извлекла ключ /Пары значений следующим образом:
{key1 value1, key2 value2}
Проблема в том, что вы, по сути, хотите «соединить» каждую последующую пару k / v с последней в одной карте.
1-е решение выше использует это в.Если мы посмотрим на clojuredoc для into, мы увидим:
"Возвращает новый coll, состоящий из to-coll со всеми элементами
, соединенными из-coll."
Другой, аналогичный ответ заключается в использовании
(reduce conj '({key1 value1} {key2 value2}))
. Очевидно, что это решение излагает вышеприведенное определение «в» для этой задачи: функция сокращения накапливает каждое применение объединенияnth + (nth + 1th) пара значений ключа, так что она реализует определение для в (по крайней мере, для целей этого вопроса).