4
由於recur只能用於尾部位置,我如何使用依賴於嵌套條件的值重複使用?這裏是一個例子:Clojure:使用基於條件的值重複使用的習慣方法
(loop [a (rand-int) b 0]
(if (< a 300)
(recur (rand-int) 1))
(if (a < 10000)
(recur (rand-int) 5))
b)
問題是重複不發生在尾部位置。那麼如何循環取決於內部條件的新值呢?我可以做一個參考,並在條件中交換它,然後在尾部位置重複,但有沒有辦法做到這一點沒有價值突變?