Exercise 3.4 tailを一般化して、リストの先頭からn個の要素を削除するdropという関数に書き換えよ。
def drop[A](l:List[A],n:Int):List[A] =
l match {
case Nil=>Nil
case Cons(x,xs)=>if (n>1) drop(xs,n-1)
else xs
}
Exercise 3.5 述語とマッチする場合に限り、Listからその要素までの要素を削除するdropWhileを実装せよ。
def dropWhile[A](l:List[A],f:A=>Boolean):List[A] =
l match {
case Nil=>Nil
case Cons(x,xs)=>if (f(x)) dropWhile(xs,f)
else l
}
としてみたが、どうだろうか。
0 件のコメント:
コメントを投稿