vlambda博客
学习文章列表

函数式编程的函数简介

要说函数,咱们先从数学中的函数开始谈起。数学中的函数是输入元素的集合到可能的输出元素的集合之间的映射关系,而且每一个输入元素只能映射到一个输出元素。好比典型的函数 f(x)=x*x 把全部实数的集合映射到其平方值的集合,如 f(2)=4 和 f(-2)=4。函数容许不一样的输入元素映射到同一个输出元素,可是每一个输入元素只能映射到一个输出元素。好比上述函数 f(x)=x*x 中,2 和-2 都映射到同一个输出元素 4。这也限定了每一个输入元素所对应的输出元素是固定的。每一个输入元素都必须被映射到某个输出元素,也就是说函数能够应用到输入元素集合中的每一个元素。


用专业的术语来讲,输入元素称为函数的参数(argument)。输出元素称为函数的值(value)。输入元素的集合称为函数的定义域(domain)。输出元素和其余附加元素的集合称为函数的到达域(codomain)。存在映射关系的输入和输出元素对的集合,称为函数的图形(graph)。输出元素的集合称为像(image)。这里须要注意像和到达域的区别。到达域还可能包含除了像中元素以外的其余元素,也就是没有输入元素与之对应的元素。


下图表示了一个函数对应的映射关系(图片来源于维基百科上的 Function 条目)。输入集合 X 中的每一个元素都映射到了输出集合 Y 中某个元素,即 f(1)=D、f(2)=C 和 f(3)=C。X 中的元素 2 和 3 都映射到了 Y 中的 C,这是合法的。Y 中的元素 B 和 A 没有被映射到,这也是合法的。该函数的定义域是 X,到达域是 Y,图形是 (1, D)、(2, C) 和 (3, C) 的集合,像是 C 和 D 的集合。



咱们一般能够把函数当作是一个黑盒子,对其内部的实现一无所知。只须要清楚其映射关系,就能够正确的使用它。函数的图形是描述函数的一种方式,也就是列出来函数对应的映射中全部可能的元素对。这种描述方式用到了集合相关的理论,对于图 1 中这样的简单函数比较容易进行描述。对于包含输入变量的函数,如 f(x)=x+1,须要用到更加复杂的集合逻辑。由于输入元素 x 能够是任何数,定义域是一个无穷集合,对应的输出元素集合也是无穷的。


函数式编程的函数简介

免责声明:

1、文章部分图片源于网络,均为示意图;2、所有文章、图片、音频视频文件等资料版权归版权所有人所有;3、因非原创文章及图片等内容无法一一和版权者联系,如原作者或编辑认为作品不宜上网供浏览,或不应无偿使用,请及时通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失;4、本页面内容如无意中侵犯了媒体或个人的知识产权,请来电告之,我们将于24小时内删除。


专属职位

免费订阅·定制地域·定制岗位