【发布时间】:2012-10-19 06:17:54
【问题描述】:
尝试从字符列表中生成映射到其频率的唯一字符列表 - 例如类似:
List('a','b','a') -> List(('a',2), ('b',1))
所以,只是在控制台中乱搞,这行得通:
val l = List('a', 'b', 'c', 'b', 'c', 'a')
val s = l.toSet
s.map(i => (i, l.filter(x => x == i).size))
但是,仅通过合并最后两行来缩短不是吗?
l.toSet.map(i => (i, l.filter(x => x == i).size))
给出错误“缺少参数类型”。
谁能解释一下为什么 Scala 抱怨这种语法?
【问题讨论】:
-
仅供参考,您可以使用
myList.groupBy(identity).mapValues(_.size)来完成您发布的第一件事。
标签: scala type-inference