Когда бы вы использовали Redu () вместо Sum ()?
Я недавно начал изучать функциональное программирование и пришел к этому примеру, пытаясь вычислить среднее значение моего теста для класса.
Пример, который я придумал:
scores = [90, 91, 92, 94, 95, 96, 97, 99, 100]
def add(num1, num2):
'''returns the sum of the parameters'''
return num1 + num2
import operator
timeit reduce(add, scores) / len(scores) #--> 1000000 loops, best of 3: 799 ns per loop
timeit sum(scores) / len(scores) #--> 1000000 loops, best of 3: 207 ns per loop
timeit reduce(operator.add, scores) / len(scores) #--> 1000000 loops, best of 3: 485 ns per loop
Казалось бы, в приведенном выше примере использование функции более высокого порядка почти в 4 раза медленнее.
Итак, мои вопросы: когда будет подходящее время для использования функции более высокого порядка, потому что ясно, что в приведенном выше примере это не так?