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