$$

\Sigma\sideset{^b_a}f(x)

$$

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 //当计算到b值,返回acc值
}else{
println(s"n=${n},acc=${acc}")
loop(n + 1, acc + f(n))
}
}
loop(a, 0) //n从a开始,acc从0开始
}
sum(x => x)(1)(5) //将f(X)、a、b传到sum函数中
//> n=1,acc=0
//| n=2,acc=1
//| n=3,acc=3
//| n=4,acc=6
//| n=5,acc=10
//| n=6,acc=15
//| res0: Int = 15
sum(x => x * x)(1)(5) //> n=1,acc=0
//| n=2,acc=1
//| n=3,acc=5
//| n=4,acc=14
//| n=5,acc=30
//| n=6,acc=55
//| res1: Int = 55
val sumSquare=sum(x => x*x)_ //> sumSquare : Int => (Int => Int) = <function1>
sumSquare(1)(5) //> n=1,acc=0
//| n=2,acc=1
//| n=3,acc=5
//| n=4,acc=14
//| n=5,acc=30
//| n=6,acc=55
//| res3: Int = 55

最新文章

  1. 让 Ubuntu 桌面自动更换壁纸
  2. MVC4 +EasyUI Tabs 使用
  3. android 新建项目中去掉标题栏
  4. 注册Com组件..
  5. ZooKeeper 3.5.0 分布式配置问题
  6. C语音的调查
  7. Android构建boot.img(二):kernel的拷贝与打包
  8. JavaScript库开发者们的规则
  9. HDU2111 Saving HDU 【贪心】
  10. base64自定义编码表 php版本
  11. c# 项目带皮肤一起打包发布解决办法
  12. asp之FSO大全
  13. ASP.NET MVC3 系列教程 - 目录
  14. Android应用程序组成部分
  15. jQuery链式操作如何返回上一级DOM
  16. Js的闭包,这篇写的是比较清晰明了的
  17. 十三、Hadoop学习笔记————Hive安装先决条件以及部署
  18. Unity3D相机震动效果
  19. springboot整合微软的ad域,采用ldap的api来整合,实现用户登录验证、
  20. python 列表、元组

热门文章

  1. linux小白家教学&lt;一&gt;
  2. python-day31(正式学习)
  3. Django项目运行端口被占用
  4. Jenkins的安装配置及使用
  5. 给网页中的button加动画效果
  6. pytorch中的torch.repeat()函数与numpy.tile()
  7. vue路由(基于VScode开发)
  8. docker 网络 实现
  9. js中 base64 转二进制
  10. 第十篇.3、ython并发编程之多线程理论部分