Scala中使用For表达式实现map、flatMap、filter

学习了Scala中使用For表达式实现map、flatMap、filter,可以实现广泛的应用

例子如下:

Object For_Advancde {

Def main(args: Array[String]) {}

Def map[A,B](List: List[A], f:A=>B):List[B]=

For (element <-list) yield f(element)

Def flatmap[A,B](List: List[A], f:A=>B):List[B]=

For (x <-list; y<-f(x)) yield y

Def  fileter[A](list:List[A] , f: A=> Boolean): List[A]=

For (elem<-list if f(elem) yield elem

王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第88讲:Scala中使用For表达式实现map、flatMap、filter
百度云盘:http://pan.baidu.com/s/1mgtgcIG
360云盘:http://yunpan.cn/cdXsbctXfDNyC  访问密码 4e30
腾讯微云:http://url.cn/VjOGea

时间: 2024-11-15 01:01:02

Scala中使用For表达式实现map、flatMap、filter的相关文章

Scala深入浅出实战经典《第88讲:Scala中使用For表达式实现map、flatMap、filter》笔记

简直了....晚上回来突然看到了进巨的原稿,忍不住撸了幅三爷,然后什么都没做就23点了... 第88讲:Scala中使用For表达式实现map.flatMap.filter Goal: For表达式实现map/flatMap/filter Gains: map/flatMap/filter是泛型 More: ...... ------------------------------------------------------------------------------------ 信息来

Scala 深入浅出实战经典 第88讲:Scala中使用For表达式实现map、flatMap、filter

高级函数 map,flatMap,filter用for循环的实现. package com.dt.scala.forexpression object For_Advanced { def main(args: Array[String]) {} def map[A, B](list: List[A], f: A => B): List[B] = for(element <- list) yield f(element) def flatMap[A, B](list: List[A], f:

第88讲:Scala中使用For表达式实现map、flatMap、filter

今天我们来学习一下如何使用for表达式实现map.flatMap以及filter 首先,我们来看下map.map的功能是,传入一个list,通过一个函数f,将list中的元素A变成元素B的过程.最后得到由B形成的列表.这个过程如果由for循环实现的话,如下操作: for(element <- list) yield f(element) 接下来我们看下flatMap.flatMap的功能是,传入一个list,通过一个函数f,将list中的每个元素转换成一个列表,最后返回由这些列表中的所有元素构成

Scala learning(2): map, flatMap, filter与For表达式

本文叙述Collections里最常见的三种操作map, flatMap, filter,与For表达式的关系. List对三种方法的实现 map在List的实现: abstract class List[+T] { def map[U](f: T => U): List[U] = this match { case x :: xs => f(x) :: xs.map(f) case Nil => Nil } } flatMap在List的实现: abstract class List[

Scala中使用For表达式实现内幕思考

学习了Scala中使用For表达式实现内幕思考,filter是if ,for是一般的表达式,有map ,filter等,建议用for循环来代替,更简洁跟具有表现力 例子如下: Object For_Advancde { Def main(args: Array[String]) {} Def map[A,B](List: List[A], f:A=>B):List[B]= For (element <-list) yield f(element) Def flatmap[A,B](List:

Scala深入浅出实战经典《第87讲:Scala中使用For表达式做查询》笔记

如知其非义,斯速已矣! 第87讲:Scala中使用For表达式做查询 Goal: For表达式做查询 Gains: for循环的应用 自定义一种类型,根据这种类型创建了一个List数组 针对数组中的内容,利用for循环可以进行相关的查询 More: 使用for循环来做查询~ ------------------------------------------------------------------------------------ 信息来源于 DT大数据梦工厂微信公众账号:DT_Spa

Scala中使用For表达式做查询

学习了Scala中使用For表达式做查询,很多编程中对数据库.文件.网络数据进行查询,应用for表达循环匹配,例子如下: Case calss Book (title:String, authors:List[tring]) Object For_Query { Def main(args:Array[String]) { Val books : List[Book]=List( Book(“Structure and Interpretation”, List(“Abelson,Harold”

Scala中的函数表达式

最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此 Scala中的Lambda表达式 在函数式编程中,函数是基本的构造块.Scala融合了java中的面向对象编程和函数式编程.在Scala中,一个lambda表达式是种叫做“函数”或者“函数文本”.Scala中的函数属于一等公民.它们可以被分配给vals或者vars(最终变量或者非最终变量),它们可以作为其他函数的参数,也可以组合成新的函数. 在Scala中一个函数文本写成如下形式: ? 1 (argu

在scala中使用for表达式做monad运算

在haskell中,我们有语法糖'do'帮助表达monad运算.scala中我们也有相应语法糖'for'. for表达式会被scala compiler做一些变换,简单的例子如下: for { a <- foo b <- bar } yield (a + b) ===> foo.flatMap((a) => { bar.map((b) => { a + b }) }) 所以我们需要实现两个方法 flatMap和map. 还是用前面的state monad作为例子, 我们给类型