(let [a (clojure.core.async/chan)]
(case a
a :foo
:bar))
#=> :bar
ここには:foo
があります。私は間違って何をしていますか?「ケース」でチャンネルを使用する
一方、(condp = chan ...)
はジョブを実行します。
PS:
基本的に私は次のようなことやろうとしています:
(require '[clojure.core.async :as a])
(let [chan1 (a/chan 10)
chan2 (a/chan 10)]
(a/>!! chan1 true)
(let [[v c] (a/alts!! [chan1 chan2])]
(case c
chan1 :chan1
chan2 :chan2
:niether)))
#=> :neither
ソースを決して読まないでください。 ;)ドキュメントを読むだけです(下記参照)。 –
@AlanThompsonの削除。私はバスの乗り継ぎ中に何かを考えようとしました。明らかにそれはうまくいかなかった。そして、私はコアソースを読むのが好きです!そこには興味深いものがたくさんありますが、その多くはかなり難読化されています。 – Carcigenicate