1/*** 2 * 2016-03-21 3 * 输出 99 乘法表 4**/ 5object main { 6 def main(args:Array[String]) : Unit = { 7 for (i <- 1 to 9; j <- 1 to i) 8 print(s"$j*$i=${i * j} ${if(i==j)"\n" else ""}") 9 } 10} 11 12 13/***** 14 * 2016-03-28 15 * 归并排序 16 */ 17 18 def mergedSort[T](less : (T,T)=>Boolean)(input:List[T]) :List[T] = { 19 def merge (xList:List[T], yList:List[T]) : List[T] = { 20 println(xList + " " + yList) 21 (xList, yList) match { 22 case (Nil, _) => yList 23 case (_, Nil) => xList 24 case (x::xtail, y::ytail) => 25 if (less(x, y)) x::merge(xtail, yList) 26 else y::merge(xList, ytail) 27 } 28 } 29 30 val n = input.length / 2 31 if (n == 0) input 32 else { 33 val(x, y)= input splitAt n 34 merge(mergedSort(less)(x), mergedSort(less)(y)) 35 } 36 } 37 38 39 40/* 41 * 2016-03-29 42 * List 问题 43 */ 44 45class List[T] { 46 //经过测试,partition函数是根据pre函数运算,每个元素返回true/false然后生成两个新的List 47 def partition(pre: T=>Boolean) : (List[T],List[T]) 48// 但是还有一个类似的函数,暂时不知道是实现了什么 49 def span(pre:T=>Boolean):(List[T], List[T]) 50}
Scala 小程序记录(学习期间的代码片段)
Stella981
2021-10-12
1026 0 0
点赞
收藏
评论区
加载中...