matches
isMatch currificado: fijas un patrón una vez y recibes un predicado reutilizable.
Lección
isMatch(target, pattern) necesita los dos argumentos de golpe,
lo que lo hace incómodo de pasar a filter, find,
every o a cualquier otro sitio que espere un
bool Function(A) de un solo argumento. matches(pattern)
captura el patrón en un cierre y devuelve justo esa forma:
matches(pattern)(target) == isMatch(target, pattern). Construyes
el predicado una vez y lo reutilizas en todo un pipeline.
Esta es la versión de currificación de FxDart para una función de dos
argumentos allí donde Dart no puede inferir un curry general — mira la función
de nivel superior obsoleta curry si te pica la curiosidad de por qué
no existe una versión genérica —, pero una forma currificada hecha a medida como
esta funciona de maravilla.
Demo 1 · Fundamentos
Demo 2 · Enchufarlo directamente en filter/find
Pruébalo tú
Ejercicio: usa matches para construir un predicado para {'active': true} y filtra users con él.
isMatch — la función de dos argumentos que esto currifica ·
filter — el sitio más habitual donde enchufarlo ·
find — quédate solo con la primera coincidencia ·
predicates — más comprobaciones ya hechas y listas para filter