go macro 对用户的代码做了什么改造?

What transformation is go macro doing to the user’s code?

go宏如何改造代码

(let [c1 (chan)
      c2 (chan)]
  (go (while true
        (let [[v ch] (alts! [c1 c2])]
          (println "Read" v "from" ch))))
  (go (>! c1 "hi"))
  (go (>! c2 "there")))

后面是状态机。您可以在 The State Machines of core.async

中阅读更多内容