函数式编程就是写数学函数
函数式编程就是写数学函数,例如:
f(x)=x+5
再例如:
f(x)=
x+5|x>5
x-5|x<=5
只要会写上面的内容,函数式编程的精髓就掌握了。有同学说了,java能这么写程序吗?不能,但是用java完全可以写出跟上面意思相同的代码,继续往下看。
java等语言实现函数式编程思想
用java语言实现的上面两个函数如下:
第一个:
class A {
static int f(int x) {
return x + 5
}
}
第二个:
class A {
static int f(int x) {
if (x>5) {
return x + 5
} else {
return x + 5
}
}
}
这样,就可以实现上面的数学函数了。是不是很简单,下面,深入讨论函数式编程的几个要点。
函数式编程要点
函数必须有参数
函数式编程是否可以没有参数,不可以,没有变元的数学函数你见过吗,没见过,ok,函数式编程不可能出现没有参数的函数。
函数必须返回值
函数式编程必须返回值,不返回值的函数是没有意义的,回顾下啥叫数学函数:
数学函数就是定义域到值域的映射
这个定义说明了函数必须有参数,必须返回值。
函数写法
依据函数的定义,函数式编程的基础写法只有两种:
一:
int f(int x) {
// 直接return
return ...
}
二:
int f(int x) {
if (x...) {
// 第一种情况下,return
return ...
} else if (x...) {
// 第二种情况下,return
return ...
} else {
// 其他情况,return
return ...
}
}
上面的判断条件是对定义域,也就是参数的分解,必须遵循下述原则。
参数分解原则
参数分解不能有重复部分,下面是错的
int f(x) int {
if (x > 5