/***
* 2016-03-21
* 输出 99 乘法表
**/
object main {
def main(args:Array[String]) : Unit = {
for (i <- 1 to 9; j <- 1 to i)
print(s"$j*$i=${i * j} ${if(i==j)"\n" else ""}")
}
}
/*****
* 2016-03-28
* 归并排序
*/
def mergedSort[T](less : (T,T)=>Boolean)(input:List[T]) :List[T] = {
def merge (xList:List[T], yList:List[T]) : List[T] = {
println(xList + " " + yList)
(xList, yList) match {
case (Nil, _) => yList
case (_, Nil) => xList
case (x::xtail, y::ytail) =>
if (less(x, y)) x::merge(xtail, yList)
else y::merge(xList, ytail)
}
}
val n = input.length / 2
if (n == 0) input
else {
val(x, y)= input splitAt n
merge(mergedSort(less)(x), mergedSort(less)(y))
}
}
/*
* 2016-03-29
* List 问题
*/
class List[T] {
//经过测试,partition函数是根据pre函数运算,每个元素返回true/false然后生成两个新的List
def partition(pre: T=>Boolean) : (List[T],List[T])
// 但是还有一个类似的函数,暂时不知道是实现了什么
def span(pre:T=>Boolean):(List[T], List[T])
}
Scala 小程序记录(学习期间的代码片段)
点赞
收藏