首页 > 代码库 > scala函数式编程
scala函数式编程
学习了一些scala的基础语法http://twitter.github.io/scala_school/zh_cn/index.html,
尝试一下scala的函数式编程。
用函数式编程如何实现:sum(f, a,b)=
s = 0
for i in [a, b]
s+=f(i)
return s
这是命令式编程,c/c++的伪代码。
1. 实现1.
1 def sum(f:Int=>Int, a:Int, b:Int):Int = {2 if(a > b) 0 else f(a) + sum(a+1, b)3 }
sum(x=>x, 1, 5)
sum(x=>x*x*x, 1, 5)
2. 实现2
这里有三个参数,f, a, b.是否可以将sum抽象成一个输入是f,输出是g: (Int, Int)=>Int的函数呢?然后用生成的g作用到a, b上?
1 def sum(f:Int=>Int):(Int, Int)=>Int = {2 def func(a:Int, b:Int):Int = {3 if(a > b) 0 else f(a)+func(a+1, b) 4 } 5 }
sum(x=>x)(1,5)
sum(x=>x*x*x)(1,5)
将f抽象出来了。
scala函数式编程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。