This program shows many Java Streams terminal operations, including forEach*(), collect(), and several variants of reduce(). In addition, it includes a non-Java 8 example as a baseline. It also shows how Java Streams can be used with "pure" functions, i.e., functions whose return values are only determined by their input values, without any side effects.