フォーム(ここでは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
?