Почему нет деструкции в форме def?

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

15
задан Gabriel Mitchell 19 November 2011 в 21:09
поделиться