从Here我们了解,像一个表达式:在Scala中,yield如何扩展到多维循环?
for(i <- 1 to 10) yield i + 1
将业务拓展到
(1 to 10).map(_+1)
但什么是下面的表达式扩大到?
for(i <- 1 to 50 j <- i to 50) yield List(1,i,j)
这是正确的吗?
(1 to 50).map(x => (1 to 50).map(List(1,x,_))
我感兴趣的是这个问题,因为我想使执行多个Xi <- Xi-1 to 50
操作的功能,如下图所示:
for(X1 <- 1 to 50 X2 <- X1 to 50 X3 <- X2 to 50 ..... Xn <- Xn-1 to 50)
yield List(1,X1,X2,X3,.....,Xn)
函数有一个参数:dimension
其表示上述表达式中的n
。
其退货类型为IndexSeq[List[Int]]
我该如何做到这一点?
感谢您的回答(:
我明白'Vector'是'Indexseq'的子类型,但为什么不在这里使用'Indexseq'? –
感谢您的回答,但'upto50'的输出并不按需要增量。是否可以对其进行修改,使其产生“严格递增顺序”?再一次,谢谢你的回答(: –
糟糕,我错过了每个循环都从前一个循环的值开始,你说得对,'IndexedSeq'更有意义。 – wingedsubmariner