negate
Devuelve un predicado que es la negación lógica del que le pasas.
Lección
negate(f) te devuelve un predicado nuevo que da
!f(x) para cualquier x. Resulta más útil cuando ya
tienes un predicado con nombre (isEven, isEmpty,
el resultado de un matches(pattern)) y quieres su opuesto como
valor de función — para filter, reject o
cualquier otro sitio donde se espere un predicado — sin volver a definir la lógica.
No lo confundas con not: not
invierte un único valor bool, mientras que negate invierte
toda una función predicado. negate(f) equivale más o menos a
(x) => not(f(x)).
Demo 1 · Fundamentos
Demo 2 · Negar un predicado de la librería
negate se compone con cualquier predicado que ya exista en la librería,
como isEmpty, que trabaja sobre valores:
Pruébalo tú
Ejercicio: usa negate(isVowel) para quedarte solo con las consonantes.