那么什么是函数式编程呢？
函数式编程是关于关注点分离的, 而面向对象编程也是如此, 对吗？
这一切都是关于将我们的代码打包成单独的块, 以便在我们代码的每个部分都有很好的组织｡
而且每个部分都以基于功能的有意义的方式组织｡
因此, 当我们说关注点分离时, 我们的意思是每个部分关注它自己擅长的一件事｡
我们还记得在面向对象编程一节中, 我们使用了两个类来划分属性和方法, 比如说,
一个向导类和一个Archer类｡
函数式编程也有分离关注点的想法, 但它们也分离了数据和函数｡
这就是函数式程序员看待世界的方式｡
我们没有将方法和属性组合在一起, 而是将它们分开, 因为这是两个独立的东西｡
有数据, 这些数据会被交互和操作｡
但我们不会像面向对象编程那样, 将数据和函数组合为一个对象中的一部分｡
现在, 对于什么是功能性的, 什么不是功能性的, 没有正确的定义｡
但是一般来说,
函数式语言强调简单性, 因为在大多数函数式编程范例中, 我们没有类和对象的概念｡
相反, 函数是在定义良好的数据结构上操作的, 比如我们看到的列表和字典,
而不是将该数据结构归属于一个对象｡
但是在一天结束的时候, 函数式编程范例的目标与面向对象范例是相同的｡
这是一个让我们的代码清晰易懂, 易于扩展的想法｡
也就是说, 我们可以增长我们的代码, 使它越来越好, 让其他人来扩展我们的代码｡
更容易维护｡
它使我们的代码保持干燥, 这样我们就不会重复自己的代码, 也使我们的代码内存保持高效,
因为我们不会到处存储信息｡
现在, 当我们谈到函数式编程时, 我们有一个非常重要的支柱｡
与面向对象编程不同, 我们有封装､ 抽象､
继承和多态性这四大支柱｡
如果你想在函数式编程中, 把事情分解开来, 这一切都归结为纯函数的概念,
这是我们在接下来的几个视频中将要探讨的内容.
但这里的想法是, 程序的数据和程序的行为是分离的｡
那么让我们来了解更多关于纯函数的知识｡
这是什么意思？
它们是什么？