-
引用透明: 对于相同的输入,总是得到相同的输出,
append违反引用透明
不变性:为了获得引用透明性,任何值都不能变化
查看全部 -
XplusY_V1就是一个纯函数
查看全部 -
函数式变成:避免改变状态和可变的数据
纯函数(函数的纯粹性,没有副作用):
查看全部 -
不错查看全部
-
查看全部
-
随堂笔记--
查看全部 -
元组tuple
查看全部 -
整数列:range
查看全部 -
随堂笔记--
查看全部 -
map也是个函数
查看全部 -
高阶函数
1、filter
查看全部 -
集合有三大类:set、sequence、map
查看全部 -
随堂笔记--
查看全部 -
object sumfunc { def sum(f:Int => Int)(a:Int)(b:Int):Int = { @annotation.tailrec def loop(n:Int, acc:Int): Int={ if (n>b){ println(s"n=${n}, acc=${acc}") acc } else{ println(s"n=${n}, acc=${acc}") loop(n+1, acc+f(n)) } } loop(a,0) } sum(x => x)(1)(5) sum(x => x*x)(1)(5) sum(x => x*x*x)(1)(5) val sumSquare = sum(x => x*x)_ sumSquare(1)(5)
查看全部 -
函数式编程中没有循环语句,所有循环都是通过递归来实现
def factorial(n: Int): Int = if (n <= 0) 1 else n * factorial(n-1)
容易堆栈溢出,优化==>
@annotation.tailrec def factorial(n:Int, m:Int): Int= if (n <= 0) m else factorial(n-1, m*n) factorial(5,1)
仅保存当前最新
查看全部
举报
0/150
提交
取消