scala併發程式設計第一章習題
阿新 • • 發佈:2018-12-25
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)
效果截圖