函数式编程入门经典!函数永远是"一等公名"!
一.什么是函数式编程? 函数式编程思想来源于伟大数学家阿隆佐设计的lambda验算,是指用函数来解决与计算相关的几乎所有问题。与我们平时常见的指令式编程相对,也是一种典型的编程范式。举个例子。 需要计算的数学表达式为 : 指令式的编程方式如下: 而函数式编程则会将每一个运算过程定义为不同的函数,编程方式如下: 从以上的对比例子可以看出,和面向对象编程以对象为模块的思想一样,函数式编程是以函数为核心来组织模块的,这种组织方式更有利于写出模块化的代码。 二.函数式编程的基本准则 与学习面向对象编程一样,函数式编程同样有几个鲜明的特点,需要我们在编程时牢记。 1.函数永远是“一等公民” 所谓一等公民是指,函数与我们平时所使用的其他数据类型地位一样: (1) 可以赋值给一个变量 (2) 可以作为参数进行传递 (3) 可以作为别的函数的返回值 将函数作为一等公民有利用代码的模块化,接下来我们来举个例子: 程序需要完成的目标: 函数不是一等公民的情况: 函数是一等公民的情况: 从以上例子可以看出,函数式编程的模块化程度更高,且代码量更少 2.尽量写“纯函数” 所谓纯函数是指,给定相同输入总能得到相同输出的函数。纯函数需要同时满足下面两个条件: (1) 函数的结果只依赖于输入的参数且与外部变量和环境无关——只要输入相同,返回值总是不变的。 (2) 除了返回值外,不修改程序的外部状态