def append[A](as:List[A],bs:List[A]):List[A]=
foldLeft(reverse(as):List[A],bs:List[A])((b:List[A],a:A)=>Cons(a,b))
def append2[A](as:List[A],bs:List[A]):List[A]=
foldRight(as:List[A],bs:List[A])((a:A,b:List[A])=>Cons(a,b))
foldRightのほうは、reverseが不要なのでシンプル
Exercise 3.15 複数のリストからなるリストを一つのリストとして連結する関数を記述せよ。
実行時間についてはよくわからないが、これでどうか?
def renketu[A](as:List[List[A]]):List[A]=
foldRight(as:List[List[A]],Nil:List[A])((a:List[A],b:List[A])=>append(a,b))
0 件のコメント:
コメントを投稿