码迷,mamicode.com
首页 > 其他好文 > 详细

scala函数式编程

时间:2014-12-10 21:05:00      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   sp   for   div   log   

学习了一些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函数式编程

标签:style   blog   http   io   color   sp   for   div   log   

原文地址:http://www.cnblogs.com/Torstan/p/4156161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!