java8入门必备——函数式编程思维——映射函数的同义异名问题

2017-09-30  本文已影响20人  每天学点编程

请关注我的微信公众号


个人微信公众号

技术交流群 (仅作技术交流):642646237
请关注我的头条号:


函数式变换映射。传给映射函数的是一个高阶函数和一个集合,它对集合中的每一个元素施用传入的函数之后,产生另一个集合作为返回值。返回的集合大小与原来传入的集合相同(这一点不同于筛选操作),只是元素的取值变了。

Scala语言——map()函数

map()函数接受一个代码块作为参数并返回变换后的集合:

map()函数适用于各种元素类型的集合,不过变换后的集合元素不一定还是原来的类型。

Scala语言——flatMap ()函数

嵌套的列表在函数式编程语言中运用得极为频繁,因此各语言普遍地具备用来消除嵌套的库函数,此操作为“展平”(flattening)。

flatMapmap唯一不一样的地方就是传入的函数在处理完后返回值必须是Listmap之后必须flat,所以需要返回值是List才能执行flat这一步。


flatMap()函数还可以用在一些在传统眼光看来不存在嵌套的数据结构上。例如可以把字符串看成一系列嵌套在一起的字符:

Groovy语言——collect()函数

只要配上合适的断言(也就是返回值为truefalse的函数),collect()方法可以用在任意的集合上。

Groovy语言——flatten()函数

用来消除嵌套结构的方法

flatten()方法适用于一些非典型的集合:

Clojure语言——(map )函数

其参数为一个高阶函数(包括各种运算符在内)和一个集合:

(map )的第一个参数可以是任意的单参数函数,无论命名函数、匿名函数都可以,内建函数也包括在内。

Clojure语言——(flatten )函数

Clojure的(flatten )函数类似于Groovy:

上一篇下一篇

猜你喜欢

热点阅读