This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-09-01
Channels
- # aleph (7)
- # bangalore-clj (1)
- # beginners (89)
- # boot (5)
- # clara (21)
- # cljs-dev (2)
- # cljsrn (57)
- # clojure (58)
- # clojure-austin (1)
- # clojure-conj (1)
- # clojure-italy (5)
- # clojure-losangeles (3)
- # clojure-russia (4)
- # clojure-sanfrancisco (4)
- # clojure-spec (31)
- # clojure-uk (67)
- # clojurebridge (4)
- # clojurescript (56)
- # cursive (92)
- # data-science (4)
- # datomic (15)
- # emacs (23)
- # events (1)
- # fulcro (121)
- # gorilla (2)
- # jobs-discuss (1)
- # juxt (1)
- # lambdaisland (6)
- # lumo (13)
- # off-topic (11)
- # om (1)
- # onyx (17)
- # overtone (5)
- # parinfer (9)
- # planck (3)
- # re-frame (21)
- # reagent (95)
- # ring-swagger (7)
- # spacemacs (58)
- # vim (13)
- # yada (2)
@fmnoise что ж ты раньше не объявился, когда как раз про монадки спрашивали 🙂 давай чуть конкретнее, не зря же мы нафлудили - сделай вклад, напиши как это должно выглядеть 🙂
упаковываешь значение в either и пропускаешь через цепочку bind(если внутри операции есть обработка ошибки) или fmap(если внутри операции нет обработки ошибки), на выходе проверяешь если either -> left, то достаешь из него ошибку и обрабатываешь(в лог положить, юзеру показать etc), если right - тоже соотвественно реагируешь
(defn do-something
[params]
(->> (step1 params)
(e-bind (partial step2))
(e-bind (partial step3))
(e-bind (partial step4))
(e-fmap (partial step5))
((fn [res] (if (e-left? res)
(say-error (e-value res))
(say-ok (e-value res)))))))