List 在函数中,In不会编译,但在函数外部会编译
编译得非常完美,正如预期的那样。为什么在函数内部它不会编译?这不是完全一样吗?我如何解决这个问题呢?您的理解会产生一个类型为List[List[Char,Int]]的元素。 因为理解将生成它们产生的元素列表,所以在本例中,这将是一个列表[List[List[Char,Int]] 我不完全确定你想要实现什么,但我认为会是这样的:List 在函数中,In不会编译,但在函数外部会编译,list,scala,type-mismatch,List,Scala,Type Mismatch,编译得非常完美,正如预期的那样。为什么在函数内部它不会编译?这不是完全一样吗?我如何解决这个问题呢?您的理解会产生一个类型为List[List[Char,Int]]的元素。 因为理解将生成它们产生的元素列表,所以在本例中,这将是一个列表[List[List[Char,Int]] 我不完全确定你想要实现什么,但我认为会是这样的: List(('a',10)) :: combinations(List()) 用于理解的方法生成一个列表[Char,Int],该列表添加在由组合方法生成的列表的开头
List(('a',10)) :: combinations(List())
用于理解的方法生成一个列表[Char,Int],该列表添加在由组合方法生成的列表的开头。您发布的内容可以编译,但它忽略了算法的要点。您所做的是将第一个元素的组合连接到第二个元素的可能性。我试图做的是把一个元素的每一种可能性与第二个元素的每一种可能性结合起来
List(('a',10)) :: combinations(List())
def combinations(list: List[(Char, Int)]) : List[List[(Char,Int)]]= {
val t = List.range(0, 1)
list match {
case Nil => List()
case (c,i) :: xs =>
(for {
o <- List.range(1, i + 1)
} yield (c, o)) :: combinations(xs)
}
}