(pmap #(do (Thread/sleep (* %1 1000)) (println %1)) '(5 1 3 6 2))
これだけ、なんだけどいまいちうまく表示してくれないなぁ。
と思ったら@omasanoriさんから。
(dorun (pmap #(do (Thread/sleep (* % 1000)) (println %)) [5 1 3 6 2]))
dorunなのね。ありがたや。
全然sleep sortと関係ないけど、手続的なloopの使い方のサンプル。
http://www.lunaticprogrammer.com/2009/05/clojure-parallel-execution-and-closures.html
;; Threading function sleeping for random time (defn my-thread [thread-name] (loop [i 0] (when (< i 10) (println (format "thread %s: %s" thread-name (incr1))) (. java.lang.Thread sleep (.nextInt random 3000)) (recur (inc i)))) )