function zundokochannel() function _producer(channel::Channel{String}) i = 1 while i > 0 zd, i = rand([("ズン", i + 1), ("ドコ", +(i<5))]) put!(channel, zd) end put!(channel, "キ・ヨ・シ!") close(channel) end channel = Channel{String}(32) @schedule _producer(channel) channel end for cw in zundokochannel() print(cw) end collect(zundokochannel()) function zundokostrictchannel() function _producer(channel::Channel{String}) i = 1 while i > 0 zd, i = rand([("ズン", i + 1), ("ドコ", +(i!=5))]) put!(channel, zd) end put!(channel, "キ・ヨ・シ!") close(channel) end channel = Channel{String}(32) @schedule _producer(channel) channel end for cw in zundokostrictchannel() print(cw) end collect(zundokostrictchannel()) VERSION function zundokochannel_v06() Channel(ctype=String, csize=32) do channel::Channel{String} i = 1 while i > 0 zd, i = rand([("ズン", i + 1), ("ドコ", +(i<5))]) put!(channel, zd) end put!(channel, "キ・ヨ・シ!") end end for cw in zundokochannel_v06() print(cw) end collect(zundokochannel_v06()) function zundokotask() function _producer() i = 1 while i > 0 zd, i = rand([("ズン", i + 1), ("ドコ", +(i<5))]) produce(zd) end produce("キ・ヨ・シ!") end @task _producer() end for cw in zundokotask() print(cw) end collect(zundokotask())