何时使用函数式编程?

编程范式概念

Eleanor Thomas

Senior Data Analytics Engineer

函数式编程的应用

  • 机器学习、深度学习、人工智能
  • 大规模数据的分析与处理
  • 数据工程应用(如 Scala、Clojure)

数据处理

编程范式概念

函数式编程示例

def process_data(raw_data):
    processed_data = raw_data

    ... further processing steps here! ...

    return processed_data
  • 函数接收存于 raw_data 的输入数据
  • 函数创建输出变量 processed_data
  • 函数执行一组一致的步骤进一步处理数据
  • 函数返回 processed_data
编程范式概念

函数式编程的优缺点

优点

  • 纯函数更易读、易调试
  • 纯函数更易测试
  • 代码中的意外副作用更少
  • 纯函数跨项目高度可复用
  • 可并行运行不同函数以加速代码

缺点

  • 思维范式不易上手,可能受限:我们"想做"的多是带副作用的事(写文件等)
  • 函数式编程的专家、工具、框架较少
  • 学习曲线更陡,教材资源更少
  • 更大的内存占用限制了应用场景
编程范式概念

函数式编程与声明式编程

  • 函数式编程是一种声明式编程
  • 声明式:告诉计算机做"什么",而非"怎么做"
  • 函数式编程只是声明式编程的"一种"
  • 程序员指定要执行的函数,而非具体步骤

函数式编程是声明式的

编程范式概念

开始练习!

编程范式概念

Preparing Video For Download...