gpt4 book ai didi

clojure - Clojure 中的循环解构

转载 作者:行者123 更新时间:2023-12-01 13:51:27 25 4
gpt4 key购买 nike

有没有办法解构循环中的 recur 绑定(bind)?例如,如果我想让 y 保持不变

(loop [x 1 y 1] (if (< x 5) (recur (inc x) _ ) (println "result:" x y))

我知道这是不可能的,但我怎么能在 recur 的顺序解构中得到类似 _ 的东西?

最佳答案

假设 yloop 中永远不会改变,您可以将所有内容包装在 let 中,将值绑定(bind)到 y,甚至将您的 loop 放在接收 y 作为参数的函数中。

(let [y 1]
(loop [x 1]
(if (< x 5)
(recur (inc x))
(println "result:" x y)))

定义

(defn loop-with [y]
(loop [x 1]
(if (< x 5)
(recur (inc x))
(println "result:" x y)))

关于clojure - Clojure 中的循环解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31365731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com