Utility class for timing the execution time of a function.
This function uses an associative binary function "f" to combine elements of a List[A] pairwise into a shorter List[A].
This function uses an associative binary function "f" to combine the elements of a List[A] into a Option[A].
This function uses an associative binary function "f" to combine the elements of a List[A] into a Option[A].
If the list is empty, None is returned. If the list is non-empty, Some[A] will be returned.
For example, List(1,2,3,4)(f) results in Some(f(f(3, 4), f(1, 2))).
This function uses an associative binary function "f" to combine elements of a List[A] pairwise into a shorter List[A].
For instance, List(1,2,3,4,5) results in List(5, f(3, 4), f(1, 2)).