次のコードがあります。
(do
(prn "sleeping for 60 seconds")
(Thread/sleep 6000)
(prn "kicking off calendar downloads @ " (new java.util.Date))
(let [links (map #(clojure.string/split % #",") (clojure.string/split (clojure.string/replace (slurp "calendars.csv") #"\r" "") #"\n"))]
(map download links))
let
評価は最後でなければならず、そうでなければ評価されないことに気付きました。これは私を混乱させます。それにもかかわらず、これをループで実装すると、let
recur が推論されると思うので評価されません。
(while
(do
(prn "sleeping for 60 seconds")
(Thread/sleep 60000)
(prn "kicking off calendar downloads @ " (new java.util.Date))
(let [links (map #(clojure.string/split % #",") (clojure.string/split (clojure.string/replace (slurp "calendars.csv") #"\r" "") #"\n"))]
(map download links))
))
sleep
私もこのセクションの最後にいたいと思いdo
ますが、それは本当に議論の余地があります。
評価するにはどうすればよいlet
ですか?それは私の使用と関係がありmap
ますか? ここで何を誤解していますか?
ダウンロードは機能です:
(defn download [[calname ics]]
(prn "attempting cal download: " calname)
(try (spit (str dest calname ".csv") (slurp ics))
(catch Exception e (str "caught exception: " (.getMessage e)))))