05 2012 档案

Scala中的call-by-name与call-by-value
摘要:在scala中函数的参数有两种定义方式分别叫做call-by-name和call-by-value, 例如下面的两个函数定义, 他们都接受一个函数block作为参数, 循环10次打印传入函数(block)的运行结果 def callByName[T](block: => T) = { for( i<-0 until 10){ println(block) } } def callByValue[T](block: T) = { for( i<-0 until... 阅读全文

posted @ 2012-05-31 10:49 nixil 阅读(1455) 评论(0) 推荐(2)

scala解惑: 偏函数与部分应用函数
摘要:scala中有PartialFunction的概念, 同时还要一个概念叫Partial Applied Function. 前者译作偏函数, 后者译作"偏应用函数"或"部分应用函数", 一字之差, 差距很大.首先偏函数是个数学概念, 偏函数不是"函数"的一种, 而是一个跟函数平行的概念. 定义可参考wikihttp://zh.wikipedia.org/wiki/%E5%87%BD%E6%95%B0, 它是指定义域X中可能存在某些值在值域Y中没有对应的值.scala可以通过模式匹配来定义偏函数, 下面这两种方式定义的函数, 都可以认为 阅读全文

posted @ 2012-05-16 12:00 nixil 阅读(4590) 评论(1) 推荐(0)

Scala能比Java简洁多少?
摘要:直接用代码来说明吧实例一:快速排序 def quickSort(array:List[Int]): List[Int] = { if (array.size <=1 ) array else { val p = array( array.length / 2) quickSort(array.filter ( _ < p)) ::: array.filter( _ == p) ::: quickSort(array.filter(_ > p)) } }实例二: 找出数组中出现次数最多, 且数字最大的... 阅读全文

posted @ 2012-05-11 15:08 nixil 阅读(521) 评论(0) 推荐(0)