Clojure线程在map求值之间睡眠

Clojure线程在map求值之间睡眠,clojure,Clojure,我需要在Clojure中执行一段代码,如下所示: (map function coll) 但是,我需要延迟每个连续函数调用之间的时间间隔。也就是说,我想用第一项调用函数,然后睡眠10秒钟,然后用第二项调用,以此类推 如何做到这一点 提前感谢您的帮助。为了完整起见,根据评论中的讨论,使用doseq的实现看起来像是一个简洁的小函数: (defn doseq-interval [f coll interval] (doseq [x coll] (Thread/sleep in

我需要在Clojure中执行一段代码,如下所示:

    (map function coll)
但是,我需要延迟每个连续函数调用之间的时间间隔。也就是说,我想用第一项调用
函数
,然后睡眠10秒钟,然后用第二项调用,以此类推

如何做到这一点


提前感谢您的帮助。

为了完整起见,根据评论中的讨论,使用
doseq
的实现看起来像是一个简洁的小函数:

(defn doseq-interval
  [f coll interval]
  (doseq [x coll]
    (Thread/sleep interval)
    (f x)))
你可以这样称呼它:

(doseq-interval prn (range 10) 1000)

这听起来好像你不应该在这里使用
map
——它提供了一个分块序列,而听起来你实际上是在寻找对时间敏感的副作用。坦率地说,当时间很重要时,我倾向于使用
core.async
;编写一个Interperced通道通过超时操作读取的goroutine是非常自然的。您到底想实现什么?如果您正在调用
函数
以查看
coll
的每个元素的副作用,您可能希望在调用之间使用
doseq
进行睡眠。啊,对了,
doseq
正是我要找的。谢谢,查尔斯和迭戈。