还有什么比循环一个序列来遍历一个序列,并从它中提取每个元素,还有更多的clojure-惯用的方式呢?这是我的意思的循环版本:
(def a-seq (list 700 600 500 400 300 200 100))
(loop [s a-seq]
(if (seq s)
(do (instrument (first s)) (recur (rest s)))
"End"))我将把(first s)作为一个频率输入到正弦波发生器中,如下所示(在泛音库中):
(use 'overtone.core)
(definst instrument [frequency 0] (sin-osc frequency))发布于 2015-12-19 00:05:33
map函数是您想要使用的。
(map instrument a-seq)这将按顺序对instrument中的每个元素调用一次a-seq函数。
请注意,map是懒惰的,因此您需要使用map的结果来保证发生任何副作用,或者调用doall。
发布于 2015-12-17 21:06:54
使用doseq
(doseq [item a-seq]
(println item))
(println "End")https://stackoverflow.com/questions/34344213
复制相似问题