Scala
胡扯flatMap in Scala
初识flatMap记得还是学Spark的时候,看到RDD有这么个接口函数,当时只觉得其功能和map有些像(把list的每个元素map成一个list,再把这些list合并),其名字也和这个功能很符合,其他就没什么概念了。之后,走马观花地学习了零零星星的其他FP相关的东西,又经常发现这个函数。再往后才慢慢知道这是个什么东西——flatMap没有我想象的那么普遍,也没有我想象的那么局限。简单讲一讲我对它的理解。 画外音:学过Monad的人都知道行内有一条规矩,那就是不要在网上发表自己的Monad教程,防止误导别人。。此文只是我一个菜鸟的粗浅理解,不是教程,但是此处还是应该有 Disclaimer:(如果你不知道什么是Monad,建议先去学习权威的教程) x 3,重要的事情说三遍。 flatMap没有想象的那么普遍:在Google或百度上搜,flatMap相关的网页大部分都是Scala或者Spark相关的内容。我却以为和map一样应该是个普遍的概念。虽然这个概念在其他FP里面也有涉及,但似乎发扬大的还是在Scala里(或者相同的概念在其他语言里叫其他名字或者用某某符号代替了)。 flat