函数式编程实战

编程范式概念

Eleanor Thomas

Senior Data Analytics Engineer

函数式编程实战

  • 三个纯函数示例
  • 纯函数与一般 Python 函数的核心区别:无副作用
  • 纯函数可调用纯函数且保持纯性

Drawing board

编程范式概念

示例 1 —— 编写纯函数

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • 先创建一个新的空列表
  • 遍历输入列表的每个元素
    • 求平方
    • 追加到新列表
  • 返回新列表
编程范式概念

示例 2 —— 修正"不纯"的函数

sample_mean = 10
scale_factor = 2

def scale_list(input_list):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • 依赖函数体外部的变量
  • 非纯函数
编程范式概念

示例 2 —— 修正"不纯"的函数

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • sample_meanscale_factor 设为函数的输入参数
  • 该函数现在是"纯"的
编程范式概念

示例 3 —— 组合纯函数

def scale_value(value, sample_mean, scale_factor):
    scaled_value = (value - sample_mean) / scale_factor
    return scaled_value

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = scale_value(item, sample_mean, scale_factor)
        new_list.append(new_item)
    return new_list
编程范式概念

我们来练习!

编程范式概念

Preparing Video For Download...