Есть ли функция в clojure, которая (учитывая предикат и коллекцию), выбирает первый элемент, который удовлетворяет заданному предикату и останавливает итерацию?выберите первый элемент коллекции, который удовлетворяет заданному предикату в clojure
, например:
(select-first #(> % 10) (range))
=> 11
Если нет, то, может быть, кто-то мог бы намекать мне о идиоматического реализации
отлично! Спасибо! – szymanowski
рад, что я мог помочь! (хотя другой ответ был опубликован около 20 секунд до моего) – xsc
Предостережение - '(first (filter ...))' более строгий (и быстрый, поскольку фильтр возвращает ленивую последовательность), потому что использование 'some' неоднозначно - - рассмотрим '(некоторые # (когда (nil?%)%)'. Использование 'some' найдет первый элемент * non-nil *. – djhaskin987