# 高阶函数
# 函数作为参数或返回值
def my_sum(a, b, f):
return f(a) + f(b)
value = my_sum(-3, -4, abs)
print(value) # 7
# 内置高阶函数-map
list1 = [1, 3, 4, 6]
value = map(lambda x: x ** 2, list1)
print(value) # <map object at 0x000001AE3C013B20>
print(list(value)) # [1, 9, 16, 36]
# 内置高阶函数reduce
import functools
list1 = [1, 2, 4]
value = functools.reduce(lambda a, b: a + b, list1)
print(value) # 7
# 内置高阶函数filter
list1 = [1, 3, 4, 5, 7]
value = filter(lambda x: x % 2 == 0, list1)
print(value) # <filter object at 0x0000014FCCA83FD0>
print(list(value)) # [4]