Clojure线程睡眠之间的地图评估

时间:2014-09-08 21:55:56

标签: clojure

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

    (map function coll)

但是,我需要延迟每次连续函数调用之间的时间间隔。也就是说,我想用第一项调用function,然后睡10秒,然后用第二项调用,等等。

如何实现这一目标?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:12)

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

(defn doseq-interval
  [f coll interval]
  (doseq [x coll]
    (Thread/sleep interval)
    (f x)))

以下是您的称呼方式:

(doseq-interval prn (range 10) 1000)