フォーム(ここではClojure)で、let次のようなことができます
(let [[u s v] (svd A)]
(do-something-with u v))
wheresvdは長さ 3 のリストを返します。これは非常に自然なことです。
(def [u s v] (svd A))
フォームのデフォルトの動作としてのさまざまな一般化def? defこれがすでに行っていることとどのように干渉するかわかりません。Zen of Lisp や Clojure を理解している人は、なぜdefが ほど強力なバインディング (破壊による) をサポートしないのか説明できますかlet?