我被给了这个问题,我想我已经想通了,但我被告知我错了。问题是,。给定一个列表xs,颠倒前n个元素。我想我不明白这个问题在问什么,我认为我们接受一个Int n,然后返回该int n前面的前n个元素。n个元素的反向列表
def nthRev[T](n: Int,xs: List[T]): List[T] = xs match {
case List() => List()
case head :: rest => (head::rest.take(n)).reverse
}
因此,输出
nthRev(3,List(1, 2, 3, 4, 5))
回报
List(4, 3, 2, 1)
,但显然它的错,谁能解释一下这个问题是要求?
什么是你想用这个模式来完成?对我而言,如果列表为空,这看起来就像一个测试。没有其他的。对于这个问题本身,我想结果应该是'List(4,3,2,1,5)'。 – bash0r 2014-11-25 01:06:53