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

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

作者: 每天学点编程 | 来源:发表于2017-09-30 07:23 被阅读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:

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/tuowextx.html