scala附加到foldLeft中的元组列表?

时间:2014-04-06 10:02:28

标签: scala

我是scala的初学者,我想知道如何追加,或者在另一个元组的头部创建一个带有元组的新元组列表。

现在我正在做

list.foldLeft(List[(String, Int)]())((ll:List[(String, Int)], str:String) => 
if (str == ll.head._1) (str, ll.head._2 + 1) :: ll.tail.head
else (str, 1) :: ll.head)

但是我得到的错误是元组没有::运算符。

1 个答案:

答案 0 :(得分:1)

如果我理解你要做什么,原因是你试图使用列表尾部的第一个元素而不是尾部本身作为{{1的右手参数}}

你应该可以使用类似的东西:

::

然而,你会在试图占据空列表的头部时遇到错误。所以一个完整的工作版本就像

list.foldLeft(List[(String, Int)]())((ll, str) =>
  if (str == ll.head._1) (str, ll.head._2 + 1) :: ll.tail
  else (str, 1) :: ll)