Ответ 1
Существует несколько возможностей.
some
some
возвращает первое значение не-nil, которое возвращает его предикат.
(some #(when (> % 10) %) (range)) ;; => 11
filter
+ first
filter
сохраняет те элементы, которые соответствуют предикату, first
извлекает первый из них.
(first (filter #(> % 10) (range))) ;; => 11
remove
+ first
Если вы хотите найти первый элемент, который не соответствует вашему предикату, remove
- ваш друг:
(first (remove #(<= % 10) (range))) ;; => 11
Или с помощью some
:
(some #(when-not (<= % 10) %) (range)) ;; => 11
Итак, это, я думаю.