1
为什么此代码的工作:混淆在斯卡拉在List.foldRight()参数
val list = List(('a', 2), ('b', 2))
val first = list.foldRight(List[List[(Char, Int)](List())) {
case ((char, num), acc) =>
(for (
elem <- acc;
i <- 0 to num
) yield (char, i) :: elem)
}
哪里,因为这不:
val second = list.foldRight(List[List[(Char, Int)]](List())) {
(elem, acc) =>
(for (
elem1 <- acc;
(char, num) <- elem; // ERROR: value filter is not a member of (Char, Int)
i <- 0 to num
) yield (char, i) :: elem1)
}
我不是在做的都一样,只是在不同的地方?
啊,所以OP试图用发电机'<-'语法上非集合(一个元组),这不是工作的正确工具 –