В форме 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
?