Up to now, we have been using higher-order functions to produce new results, but there are also some other functions that produce logical results by applying a predicate to all the elements of an array. (By the way, we'll be seeing much more about higher-order functions in the next chapter.)
A bit of terminology: the word predicate can be used in several senses (as in predicate logic), but for us, in computer science, it has the meaning of a function that returns true or false. Okay, this isn't a very formal definition, but it's enough for our needs. For example, saying that we will filter an array depending on a predicate just means that we get to decide which elements are included or excluded depending on the result of the predicate.
Using these functions implies that your code will become shorter: you can, with a single...