我想在Scala中創建一個函數,給定List[Int]
返回List[List[Int]]
。例如getCombs(List(1,2))
應返回List(List(1), List(2), List(1,2))
。如何用函數式編程風格在Scala中創建列表清單
我正在學習函數式編程,所以我想用這個範例來完成我的任務。
我已經創建了以下函數並且它可以工作,但我認爲在函數式編程風格中有更好的方法來完成這項工作。
def getCombs(coins: List[Int]): List[List[Int]] = {
var l = List(coins)
var i = 0
for (i <- 1 to coins.length - 1) {
var it = coins.combinations(i)
while (it.hasNext) {
val el = it.next
val newL = el :: l
l = newL
}
}
return l
}
這將返回一個List [Iterator [List [Int]]]。 – marstran
我將地圖更改爲flatMap ...似乎更好地糾正了代碼,而不是給@Dima的回答投下一票。 :-) –
謝謝,@KeithPinson。有些人必須像那樣... :) – Dima