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