関数List[A] => List[List[A]]
があり、「空の」値を返す必要がある場合、次の間に理論的な優先順位はありますか?
a)Nil
b)List(Nil)
...または機能に依存しますか?
n
具体的な例として、次のように、リストを長さ以下のサブリストに分割する関数を実装できます。
def sublists[A](xs: List[A], n: Int): List[List[A]] = {
val (ys, zs) = xs.splitAt(n)
if (zs.isEmpty) ys :: Nil
else ys :: sublists(zs, n)
}
xs
が空の場合、これは を返しますList(Nil)
。この関数が正しいために、xs
が空であるかどうかのチェックを含める必要がありますか?Nil