В форме let
(здесь Clojure) я могу сделать что-то вроде
(let [[u s v] (svd A)]
(do-something-with u v))
, где svd
возвращает список длиной три. Это очень естественный вид вещей, так почему же у нас нет
(def [u s v] (svd A))
и его различных обобщений в качестве поведения по умолчанию для формы def
? Я не понимаю, как это повлияет на то, что уже делает def
. Может ли кто-нибудь, кто разбирается в Zen Lisp или Clojure, объяснить, почему def
не поддерживает связывание (с деструктуризацией) столь же мощное, как let
?