tutorial rich online hickey example clojure

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