обучения Clojure от фона схемы, мой непосредственный инстинкт должны была написать код следующим образом:деструктурирующей карта спор с: ключи против старомодного пусть
(defn my-func [data]
(let [right (:right data)
left (:left data)]
... body ...))
Однако, мне сказали, очень скоро, что соответствующий шаблон является одним из большие возможности Clojure (или действительно Haskell и Scala), так что я был вынужден написать:
(defn my-func [ {:keys [right left] } ]
... body ...)
так что мой код теперь валялись с этим типом синтаксиса. Как-то мне это не нравится. Я нахожу, что мой код менее привлекателен, чтобы выглядеть, может быть, даже менее читаемым (но это, вероятно, связано с отсутствием опыта идиоматического Clojure, поэтому со временем это будет лучше).
Так что я хотел спросить, есть ли фундаментальная причина использовать один стиль над другим? Например, компилятор генерирует байт-коды, которые намного эффективнее во втором случае. Или есть другие причины, о которых я должен знать?
Большое спасибо! Спасибо также за ссылку на деструктурирование v шаблона соответствия –