reduce reduces compute time for list-based operations: it changes a linear series of events to divide-and-conquer so you can parallelize itin theory reduce only works for associative operations?