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

scala --高阶函数

时间:2014-09-18 16:45:25      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:scala高阶函数 函数式编程

  scala 混合了面向对象和函数式的特征。 在函数式的编程语言中,函数是可以像其他的数据类型一样被传递和操作。这对于想将详细动作传入给算法时变得非常有用。

   

import scala.math._
val fun = ceil _  /从技术上将 _的作用是将ceil方法变成了函数
res = fun(num) / num = 3.14 , res = 4 

Array(3.14, 1.42, 2.0).map(fun) / Array(4.0, 2.0, 2.0)

 map方法接受一个函数参数, 将他应用到数组中的所有值, 然后返回结果的数组。

 创建匿名函数

(x: Double) => 3 * x 
Array(3.14, 1.42, 2.0).map((x :Double) => 3 * x) //Array(9.42, 4.26, 6.0)

带函数参数的函数 

 def valueAtOneQuarter(f: (Double) => Double) = f(0.5)
 valueAtOnequarter(ceil _) // 1.0
 valueAtOneQuarter(sqrt _) // 0.5 (0.5 * 0.5 = 0.25 )

返回一个函数的高阶函数

def mulBy(factor: Double) = (x: Double) => factor * x
 mulBy(3) / (x: Double) => 3 * x

资料来源于快学scala 个人笔记  

scala --高阶函数

标签:scala高阶函数 函数式编程

原文地址:http://herocnhb.blog.51cto.com/6335518/1554760

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