从数学到编程,了解什么是函数!!!
数学中函数的定义
函数(function)的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、
映射的观点出发。函数的近代定义是给定一个数集A,假设其中的元素为x,对A中的元素x施加对应法则f,记作f(x),得到另一数集B,假设B中的元素为y,则y与x之间的等量
关系可以用y=f(x)表示,函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。
定义域与编程
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.forEach(value -> System.out.println(value));
此例中value是自变量,定义域为{1,2,3,4
数集与对应法则
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
我们再看下forEach的源码,方法体的第一行代码是判断函数是否为空,空就抛出NullPointerExceptio。此代码中,数集this,action.accept(t)便是对应法则,t是数集中的元素。
映射关系
我们把action.accept(t)定义为集合A。那么映射关系为
graph LR
this-->A
欢迎扫描下面图片关注我的个人公众号,回复“资源”可以获取java核心知识整理和经典书籍