Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defonce c2 (chan))
- (defn vec-to-chan[vec]
- (let [c (a/chan)]
- (a/go (doseq [x vec]
- (>! c x))
- (a/close! c))
- c))
- (defn prn1 [c1]
- (go-loop []
- (let [msg (<! c1)]
- (if (not= msg nil) (println msg))
- (recur))))
- (def c1 (vec-to-chan [0 1 2 0 1 2 0 :reset 0 1 2 3 0 1 2 0 1 2 :reset 1]))
- (prn1 c2) ; ЧТОБЫ СРАЗУ ВЫВОДИТЬ СООБЩЕНИЯ ПОСЛАННЫЕ В КАНАЛ с2
- ;ЗАДАНИЕ НАЧИНАЕТСЯ ЗДЕСЬ
- (defn mefun1 [c1 c2]
- (go-loop [v[]]
- (if-let [msg (<! c1)]
- (if (not= msg :reset)
- (if (.contains v msg)
- (do
- (recur v))
- (do
- (>! c2 msg)
- (recur (conj v msg))))
- (recur (subvec v 0 0))))))
- (mefun1 c1 c2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement