gpt4 book ai didi

clojure - 如何在 Clojure 中进行 for 循环?

转载 作者:行者123 更新时间:2023-12-04 22:14:02 27 4
gpt4 key购买 nike

我正在自学一些 Clojure,我正在使用 Quil。我想知道如何将 for 循环转换为 Clojure:

这就是我在 Java 或类似语言中的做法:

for ( int i = 0; i < numSides; i++ ) {
float posX = cos( theta * i );
float posY = sin( theta * i );
ellipse( posX, posY, polySize, polySize );
}

我的 Clojure 尝试:
  (let [theta (/ PI num-sides)
angle (range 0 num-sides)
pos-x (cos (* theta angle))
pos-y (sin (* theta angle))]
(dorun (map #(ellipse % % % %) pos-x pos-y poly-size poly-size)))

最佳答案

您寻找的所有方法基本上都是使用序列,其中循环是关于执行特定次数的事情。 Clojure 提供 dotimes 来做一定次数的事情:

(dotimes [i 10]
(println i))

所以你的代码变成了这样:
 (dotimes [i num-sides]
(let [pos-x (cos (* theta i))
pos-y (sin (* theta i))]
(ellipse pos-x pos-y poly-size poly-size)))

关于clojure - 如何在 Clojure 中进行 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15320892/

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