1. 程式人生 > >scala併發程式設計第一章習題

scala併發程式設計第一章習題

1.下面的方法簽名實現一個compose方法

    def compose[A,B,C](g:B => C ,f : A => B):A => C = x => g(f(x))

思路就是上一篇文章說的關於compose和andThen解讀

2.下面一個方法簽名實現一個名為fuse的方法:

def fuse[A,B](a:Option[A],b:Option[B]):Option[(A,B)] => for(x <- a;y <- b ) yield (x,y)

3.一個名為check的方法,該方法接收一組型別為T的值和一個T=>Boolean型別的函式,只有函式pred對序列所有值都返回true,該方法返回true

//1
def check[T](xs:Seq[T])(pred:T=>Boolean) :Boolean = xs.filterNot(pred).isEmpty
//2
def check[T](xs:Seq[T])(pred:T=>Boolean) :Boolean = xs.forAll(pred)

4.Pair適合模式匹配

//old
class Pair[P,Q](val first:P,val second:Q)
//new
case class Pair[P,Q](val first:P,val second:Q)

5.一個名為permutations的函式,使該函式接收一個字串,並返回一個字串序列,返回的序列為輸入字串字典順序

def premutations(x:String) : Seq[String] = x.split("").sortBy(_.toLowerCase)

效果截圖worksheet