[Clojure] core.asyncでnilを送信したい 今回も小ネタです。 Clojureの非同期処理というと、いまでは core.async が一番メジャーだと思います。Clojure、ClojureScriptの両方で動作し(Clojure CLRでも動作するポートが存在するらしい)、golangのgoブロックにインスパイアされた「goブロック」を備えています。 ところで、goブロック同士がデータをやりとりするためのチャネルには、nilを書き込むことが出来ません。nilはcloseされたチャネルをリードしたときの値として予約されており、まだ閉じられていないチャネルにnilを送信することは出来ません(nilを書き込むとエラーになります)。 Clojureでは割とラフにnilを使うので(多くの関数がnilを許容するのと、when関数で簡単に処理できるからだと思います)、チャネルにni