第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中的每个元素转换成一个列表,最后返回由这些列表中的所有元素构成的列表。这个过程如果由for表达式实现,操作如下:for(x<-list;y<-f(x)) yield y
最后我们来看下filter操作,filter的功能就是传入一个列表list,通过函数f,筛选出布尔表达式为true,即符合条件的元素,最后返回符合条件的元素构成的列表。这个过程如果由for表达式实现,操作如下:for(elem <- list if f(elem)) yield elem
分享下更多的scala资源吧:
百度云盘:http://pan.baidu.com/s/1gd7133t
微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416
360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)
信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
关注微信账号,获取更多关于scala学习内容
第88讲:Scala中使用For表达式实现map、flatMap、filter的更多相关文章
- Scala中的函数表达式
最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此 Scala中的Lambda表达式 在函数式编程中,函数是基本的构造块.Scala融合了java中的面向对 ...
- 第87讲:scala中使用For表达式做查询
今天我们来学习下如何用for表达式在scala中做查询. 先来看看示例代码 case class Book(title:String,authors:List[String]) object text ...
- 【Scala篇】--Scala中集合数组,list,set,map,元祖
一.前述 Scala在常用的集合的类别有数组,List,Set,Map,元祖. 二.具体实现 数组 1.创建数组 new Array[Int](10) 赋值:arr(0) = xxx Array[ ...
- Scala中的foreach forall exists map函数及其区别
forall 对集合中的元素进行某个判断,全部为true则返回true,反之返回false. 例如: scala> var s = List("hello", "w ...
- Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted
1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...
- javascript中some,every,map,filter是只用和ansyc中的each,eachLimit,map,mapLImit,filter的使用
var t = [1,2,3,4,5]; //some找到数组中第一个符合要求的值后就不在继续执行//用来判断数组中是否存符合要求的值,返回结果true|false//function返回类型为boo ...
- python中lambda、yield、map、filter、reduce的使用
1. 匿名函数lambda python中允许使用lambda关键字定义一个匿名函数.所谓的匿名函数就是说使用一次或者几次之后就不再需要的函数,属于"一次性"函数. #例1:求两数 ...
- 第85讲:Scala中For表达式的强大表现力实战
今天来学一下scala中的For表达式的用法. package scala.learn case class Persons(name:String,isMale:Boolean,children:P ...
- 一篇文章教会你使用Java8中的Lambda表达式
简介 Java 8为开发者带来了许多重量级的新特性,包括Lambda表达式,流式数据处理,新的Optional类,新的日期和时间API等.这些新特性给Java开发者带来了福音,特别是Lambda表达式 ...
随机推荐
- c++中“箭头(->)”和“点号(.)”操作符的区别
首先介绍一下C++中的结构.对于一个结构: struct MyStruct { int member_a; }; 如果有个变量MyStruct s,那么使用其中的成员元素时可以用: s.member_ ...
- 虚拟机安装oracle重新启动后oracle em起不来 ORA-01034: ORACLE not available
(转)http://zhidao.baidu.com/link?url=hM74OA-oWNGGx6RcDaGBwB8Hs0bAnVeKxpC6gpoCGtIGJZ8duYcC-YJ1WNCF7lkP ...
- 安全概念:DMZ(非军事化区,隔离区)
DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”.它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间 ...
- Startup.国外新锐公司及其技术Blog
国外技术公司Tech/Engineering Blog 1. vimeo https://coderwall.com/team/vimeo http://blog.assembly.com/ 2. l ...
- java中 this 关键字的三种用法
Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...
- codeforces 数字区分 搜索
Jokewithpermutation Input file: joke.inOutput file: joke.outJoey had saved a permutation of integers f ...
- spring.boot mybaits集成
https://www.cnblogs.com/pejsidney/p/9272562.html (insertBatch批量插入) 第一篇博客循环部分有错误,参照下面的例子去更改 List<S ...
- c++11 初始化列表 bind function 示例
// 111111111111.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #incl ...
- 模板 Template
package ${enclosing_package}; import java.io.IOException;import javax.servlet.ServletException;impor ...
- 【算法】BFS+哈希解决八数码问题
15拼图已经有超过100年; 即使你不叫这个名字知道的话,你已经看到了.它被构造成具有15滑动砖,每一个从1到15上,并且所有包装成4乘4帧与一个瓦块丢失.让我们把丢失的瓷砖“X”; 拼图的目的是安排 ...