De acordo com o código:
(defn chega-em-malvado! [hospital pessoa]
(swap! hospital h.logica/chega-em :espera pessoa)
(println "após inserir pessoa" pessoa))
(defn simula-um-dia-em-paralelo []
(let [hospital (atom (h.model/novo-hospital))
pessoas ["111", "222", "333", "444", "555", "666"]]
(map #(.start (Thread. (fn [] (chega-em-malvado! hospital %)))) pessoas)
(.start (Thread. (fn [] (Thread/sleep 2000)
(pprint hospital))))
)
)
(simula-um-dia-em-paralelo)
O professor explicou que o map não foi executado porque ele é lazy, mas por que nessa ocasião ele é lazy?