scala中嵌套循环的产量
我有一个数组,我想定义一个函数,它产生每一个元素。大概是这样的:scala中嵌套循环的产量,scala,Scala,我有一个数组,我想定义一个函数,它产生每一个元素。大概是这样的: def foo(l:MyList) = { for (e1 <- l.sub_list) { for(e2 <- e1.sub_list) { yield e2 } } } def bar(l:MyList) = { foo(l).map(a => { //.. body }) } def foo(l:MyList)={
def foo(l:MyList) = {
for (e1 <- l.sub_list) {
for(e2 <- e1.sub_list) {
yield e2
}
}
}
def bar(l:MyList) = {
foo(l).map(a => {
//.. body
})
}
def foo(l:MyList)={
对于(e1而不是产量,可以使用List.flatten
例如:
val l=列表(列表(1,2),列表(3),列表(4,5))
val f=l.flant//f:List[Int]=List(1,2,3,4,5)
您可以使用列表。展平
而不是屈服
例如:
val l=列表(列表(1,2),列表(3),列表(4,5))
val f=l.flant//f:List[Int]=List(1,2,3,4,5)
我现在假设l.sub_列表
将返回嵌套在l
中的数组MyList
可能如下所示:
type MyList[A] = Array[Array[A]]
而foo
可定义为:
def foo[A](l: MyList[A]) = for {
l1 <- l
e <- l1
} yield e
编辑:在问题中添加了bar
bar
def bar(l: MyList[Int]) = foo(l).map(_ * 10)
预期结果:
scala> bar(Array(Array(1,2,3), Array(4,5,6), Array(7,8,9)))
Array(10, 20, 30, 40, 50, 60, 70, 80, 90)
我现在假设l.sub_列表
将返回嵌套在l
中的数组MyList
可能如下所示:
type MyList[A] = Array[Array[A]]
而foo
可定义为:
def foo[A](l: MyList[A]) = for {
l1 <- l
e <- l1
} yield e
编辑:在问题中添加了bar
bar
def bar(l: MyList[Int]) = foo(l).map(_ * 10)
预期结果:
scala> bar(Array(Array(1,2,3), Array(4,5,6), Array(7,8,9)))
Array(10, 20, 30, 40, 50, 60, 70, 80, 90)
我给你编码,l1
是从哪里来的?关于函数的输入和输出的示例会很好。是的,你是对的。我修正了它。@badnack你能不能包括MyList
的定义以及输入和预期结果的示例?我给你编码,l1
是从哪里来的?还有关于什么的示例在函数中插入并输出内容会很好。是的,你是对的。我已修复。@badnack能否请你包括MyList
的定义以及输入和预期结果的示例?