你能解释一下为什么第一个定义与下一个定义相比是错误的吗?
为什么写作
((r._2,c))._1
会给我带来倒数第二个元素?请告诉我元素是如何插入的
(r,c)
或它们的意义。
这是代码:
scala> def penpen [A] (list:List[A]):A = {
list.foldLeft( (list.head, list.tail.head) )((r, c) => (r,c))._1
}
8: error: type mismatch;
found : r.type (with underlying type (A, A))
required: A
list.foldLeft( (list.head, list.tail.head) )((r, c) => (r,c))._1
^
scala> def penpen [A] (list:List[A]):A = {
list.foldLeft( (list.head, list.tail.head) )((r, c) =>(r._2,c))._1
}
penpen: [A](list: List[A])A