-
求值策略 Call By Value Call By Name查看全部
-
匿名函数 (参数列表) => {函数题};查看全部
-
不变性:为了获得引用透明性,任务值都不能变化查看全部
-
Mark查看全部
-
map例子查看全部
-
例 子查看全部
-
综合例子查看全部
-
求值策略的例子查看全部
-
求值策略的例子查看全部
-
val a = List(1, 2, 3, 4) val b = 0::a 表示0添加到a的头部,并赋给b val c = "x"::"y"::"z" val d = a:::c 表示列表a连接列表b a.isEmpty 判断列表是否为空 a.head 表示显示列表a第一个元素 a.tail 表示显示列表a除了第一个元素,以外的所有元素 def walkthru(l: List[Int]): String = { if(l.isEmpty) "" else l.head.toString + " " + walkthru(l.tail) } walkthru(a)查看全部
-
递归: 递归函数(Recurisive Function)在函数式编程中是实现循环的一种技术 例子: def factorial(n: Int): Int = { if (n <= 0) 1 else n* factorial(n - 1) } 当递归层数过多时,堆栈会溢出 尾递归函数: @annotation.tailrec //这句话告诉scala,需要进行尾递归优化 def factorial(n: Int, m: Int):Int = if (n <= 0) m else factorial(n -1, n*m) factorial(5, 1)查看全部
-
科里化: 科里化函数(Curried Function)把具有多个参数的函数转换为一条函数链,每个节点上是单一参数。 def add(x: Int, y: Int) = x + y //非科里化语法 def add(x: Int)(y: Int) = x + y //科里化语法 def curriedAdd(a: Int)(b: Int) = a + b curriedAdd(2)(6) def addOne = curriedAdd(1)_ //Int => Int addOne(2) //3查看全部
-
Scala语言支持: 把函数作为实参传给另一个函数 把函数作为返回值 把函数赋值给变量 把函数存储在数据结构中 函数类型: A => B Int => String /*把一个Int类型的参数,通过一系列的函数映射,转换为一个字符串 类型的值返回*/ 高阶函数: 用函数作为形参或返回值的函数 匿名函数: 在Scala里,匿名函数的定义格式为: (形参列表) => {函数体}查看全部
-
代码块Block: {exp1;exp2} { exp1 exp2 } 函数(多个输入参数用逗号分隔): def functionName(param: ParamType): ReturnType = { //function block }查看全部
-
_是个通配符查看全部
举报
0/150
提交
取消