Predicate is a function that takes one element as input parameter and return either true or false. Predicates are used in higher order functions, applied to a given function(a.k.a transformer) element-wise to a list of elements and returns a list of results. Transformer is a function applies to each element and will produce one or more new elements.