[x! x]
(when-some [f! (f x!)]
(when-some [g! (g f!)]
(when-some [q! (q g!)]
q!))))
Разница между some-> и some->> такая же, как между -> и ->>
as-> нужно для именования выражения
(as-> x $ (f $ 1) (g 2 $))
(g 2 (f x 1))
cond-*> нужно для дополнительных проверок
(cond-> x
c1? f
c2? g)
(let [x! (if c1? (f x) x)]
(if c2? (g x!) x))
А ещё some-> можно воспринимать как bind/do-notation для Maybe
Обсуждают сегодня