Аргумент функции с картами в Clojure - PullRequest
1 голос
/ 02 ноября 2019

Последние пару дней я промочил Clojure и наткнулся на этот фрагмент кода:

(defn reduce-example
  [new-map [key val]]
  (assoc new-map key (inc val)))

(reduce reduce-example
        {}
        {:max 30 :min 10})
; => {:max 31, :min 11}

Я запутался в аргументе функции в reduce-example, точнее в следующем:new-map [key value]

Из того, что я изучал до сих пор и после имени функции, вы можете объявить количество аргументов (арность). Например, [x y z], но что означает [new-map [key value]]? конечно он может извлечь ключ и значение, но как? как мне интерпретировать этот аргумент функции?

Спасибо

1 Ответ

6 голосов
/ 02 ноября 2019

[new-map [key value]] означает, что функция ожидает два аргумента:

  • первый будет привязан к имени new-map

  • второй (долженбыть последовательным типом с 2 элементами внутри). Элементы внутри будут связываться с key и value

Clojure имеет способность разрушение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...