如果我有一个函数List[A] => List[List[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
,才能使此功能正确?