In Reactive Programming, operators take one or several input streams and return a new stream. Some operators may accept additional arguments, such as functions:
accumulator function, etc.
These functions don’t have to work with the input or the output stream: they usually just transform, compare or combine values. The operators do work with the streams, in conjunction with these functions.
Project and predicate
How you label a function (eg. “project” or “predicate” function) depends on how you use it.
A function that:
takes several values
and returns one new value of any type
may be used as a project function on combining operators (eg. combineLatest or zip).