有没有办法在循环中解构recur
绑定?
例如,如果我想让y
保持不变
(loop [x 1 y 1] (if (< x 5) (recur (inc x) _ ) (println "result:" x y))
我知道这是不可能的,但是如何才能在_
的顺序解构中得到像recur
这样的类似内容?
答案 0 :(得分:2)
假设y
内部loop
永远不会发生变化,您可以将let
中的所有内容包装起来,将值绑定到y
,甚至可以放置loop
y
在接收let
作为参数的函数中。
(let [y 1]
(loop [x 1]
(if (< x 5)
(recur (inc x))
(println "result:" x y)))
defn
(defn loop-with [y]
(loop [x 1]
(if (< x 5)
(recur (inc x))
(println "result:" x y)))
import android.util.Log