def flatten(l: List[_]): List[_] = {
def iflatten(l: List[_], ret: List[_]): List[_] = l match {
case Nil => ret
case h :: Nil =>
if( h.isInstanceOf[List[_]]) { iflatten(h, ret) }
else {
l.head :: ret
iflatten(l.tail, ret)
}
}
}
これを行うには複数の方法があることは知っていますが、私の方法が100%正しいとは確信していません。私はそれをテストしたいと思いますが、私が実行している1つの問題は、私が呼び出す2番目のケースステートメントにあります:
... { iflatten(h, ret) }
コンパイラ エラーが発生します。
error: type mismatch;
found : Unit
required: List[?]
私はこれらの型の問題に取り組み、過去に取り組んできたものとは異なる型システムについてもっと学ぼうとしています。コンパイラが不平を言っている理由についての提案は大歓迎です。