KR
Size: a a a
KR
ap
ap
ap
E
А
AG
foo()
, которая может вернуть nil
, если пользователь ввел некорректные данные (foo input) => nil
faa()
, которая принимает результат работы foo()
(faa (foo input))
nil
то она крашицо.IG
IG
(-> input
(foo)
(or (throw (ex-info ...)))
(bar)
(or (throw (ex-info ...))))
AG
MP
AG
MP
MP
MP
(loop [val (input)]
(if (valid? val)
val
(recur (input))))
AG
KR
DL
AG
AU
fnil
еще может помочь, если захочешь какой-то дефолтный аргумент проставлять, хотя это вроде не совсем подходит под описанный кейс.