day3Scala函数式编程
2016-01-31 23:43
204 查看
匿名函数:函数没有名称
参数名称 :类型 => 指向的函数实现体本身
scala> val fun2 = (content: String) => println(content)
fun2: String => Unit = <function1>
scala> fun2("hellon spark")
hellon spark
高阶函数:函数的参数也是函数
scala> def bd(func: (String) => Unit, conte: String) {func(conte)}
bd: (func: String => Unit, conte: String)Unit
scala> val sc = (conte: String) => println(conte)
sc: String => Unit = <function1>
scala> bd(sc,"hell spark")
hell spark
函数出入类型 指向函数体的返回结果类型
def b1(fun1:(String)=> Unit, )
在函数的参数作用的函数体中,
只使用一次这个参数的具体值的话,我们可以将这个参数的具体名称省略掉用下划线代替
闭包:函数的变量超出有效作用域还能被函数使用
函数执行完后内部变量依旧可以被外部访问
scala> def sc1(content: String) =(message: String) =>println(content +"..."+ message)
sc1: (content: String)String => Unit
scala> val funrest = sc1("spark")
funrest: String => Unit = <function1>
scala> funrest("Filek")
spark...Filek
scala>
柯里化:函数有2个不同参数可以转换成2个函数
在函数的调用过程通过柯里化
scala> def sum(x: Int, y: Int) = x + y
sum: (x: Int, y: Int)Int
scala> sum(2,4)
res9: Int = 6
scala> def sum_rry(x: Int) = (y: Int) => x + y
sum_rry: (x: Int)Int => Int
scala> sum_rry(1)(8)
res10: Int = 9
scala> def sum1(x: Int) (y: Int) = x + y
sum1: (x: Int)(y: Int)Int
scala> sum1(1)(99)
res11: Int = 100
参数名称 :类型 => 指向的函数实现体本身
scala> val fun2 = (content: String) => println(content)
fun2: String => Unit = <function1>
scala> fun2("hellon spark")
hellon spark
高阶函数:函数的参数也是函数
scala> def bd(func: (String) => Unit, conte: String) {func(conte)}
bd: (func: String => Unit, conte: String)Unit
scala> val sc = (conte: String) => println(conte)
sc: String => Unit = <function1>
scala> bd(sc,"hell spark")
hell spark
函数出入类型 指向函数体的返回结果类型
def b1(fun1:(String)=> Unit, )
在函数的参数作用的函数体中,
只使用一次这个参数的具体值的话,我们可以将这个参数的具体名称省略掉用下划线代替
闭包:函数的变量超出有效作用域还能被函数使用
函数执行完后内部变量依旧可以被外部访问
scala> def sc1(content: String) =(message: String) =>println(content +"..."+ message)
sc1: (content: String)String => Unit
scala> val funrest = sc1("spark")
funrest: String => Unit = <function1>
scala> funrest("Filek")
spark...Filek
scala>
柯里化:函数有2个不同参数可以转换成2个函数
在函数的调用过程通过柯里化
scala> def sum(x: Int, y: Int) = x + y
sum: (x: Int, y: Int)Int
scala> sum(2,4)
res9: Int = 6
scala> def sum_rry(x: Int) = (y: Int) => x + y
sum_rry: (x: Int)Int => Int
scala> sum_rry(1)(8)
res10: Int = 9
scala> def sum1(x: Int) (y: Int) = x + y
sum1: (x: Int)(y: Int)Int
scala> sum1(1)(99)
res11: Int = 100
相关文章推荐
- 函数式编程
- python科学计算六:scipy矩阵操作
- JPA (Java Persistence API)概述
- 建立Laravel工程的个人总结
- Java inheritance, composition, encapsulation and polymophism
- C# 4.0中的动态类型和动态编程
- C#执行异步操作的几种方式比较和总结
- 《Java学习笔记JDK8》学习总结
- 自定义代码块
- Spring MVC 4 HelloWorld
- c语言:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
- Java设计模式-工厂模式(1)简单工厂模式
- 《C语言程序设计》指针篇<一>
- 2015年编程历程回顾
- PHP foreach循环 总结
- The Python Tutorial
- 怎样安装和配置Windows 7系统的IIS 7和ASP
- C++ Primer Summary
- java 类 基础知识小总结
- [Spring实战系列](3)开启Spring之门