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

Ton*_*uan 8 clojure

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

    (map function coll)
Run Code Online (Sandbox Code Playgroud)

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

如何实现这一目标?

在此先感谢您的帮助.

jua*_*rro 14

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

(defn doseq-interval
  [f coll interval]
  (doseq [x coll]
    (Thread/sleep interval)
    (f x)))
Run Code Online (Sandbox Code Playgroud)

这就是你怎么称呼它:

(doseq-interval prn (range 10) 1000)
Run Code Online (Sandbox Code Playgroud)