rich - Seleccione el primer elemento de una colección que satisfaga el predicado dado en clojure
clojurescript (2)
Hay múltiples posibilidades.
some
some
devuelven el primer valor no nulo que devuelve su predicado.
(some #(when (> % 10) %) (range)) ;; => 11
filter
+ first
filter
retiene aquellos elementos que coinciden con un predicado, first
recupera el primero de ellos.
(first (filter #(> % 10) (range))) ;; => 11
remove
+ first
Si desea encontrar el primer elemento que no coincide con su predicado, remove
es su amigo:
(first (remove #(<= % 10) (range))) ;; => 11
O con some
:
(some #(when-not (<= % 10) %) (range)) ;; => 11
Entonces, eso es todo, supongo.
¿Hay una función en clojure que (dado un predicado y una colección), selecciona el primer elemento que satisface el predicado dado y detiene la iteración?
por ejemplo:
(select-first #(> % 10) (range))
=> 11
Si no es así, tal vez alguien podría sugerirme una implementación idiomática.
Usar filtro y primero
user=> (->> (range) (filter #(> % 10)) first)
11
user=> (first (filter #(> % 10) (range)))
11