KR
(defn try-comps [el] (try (comp-funcs el) (catch ...
Size: a a a
KR
KR
a
IG
(require '[fmnoise.flow :as flow])
(->> [3 2 1 0]
(map #(flow/call / 1 %))
(filter (comp not flow/fail?)))
flow/call
вернет монаду, а следующий фильтр снесет все ошибочные результаты, принцип понятенIG
AL
flow/call
вернет монаду, а следующий фильтр снесет все ошибочные результаты, принцип понятенAL
flow/fail?
просто обертка с проверкой это ексепшн или нетAL
DL
IG
(defn safe []
(fn [xf]
(fn
([] (xf))
([result] (xf result))
([result input]
(try
(xf result input)
(catch Exception e
(log/error e)
result))))))
IG
(sequence (comp (safe)
(map inc)
(map dec)
(map (fn [x] (/ 1 x))))
[3 2 1 0])
IG
IG
DL
IG
DL
DL
ST
ST
(sequence (keep (fn [x] (try (/ 1 x) (catch Exception _)))) [3 2 1 0])
IG