我是斯卡拉的新人。
例如,我有一个像
这样的列表 val s = List(5, 11, 15, 7)
我需要一个lambda函数来创建一个超过10个元素的索引的新列表。我不能使用语言Scala库或函数。只有标准的Scala机会。
如何计算这些元素的指数?谢谢!
答案 0 :(得分:0)
试试这段代码:
val lambda = (list: List[Int]) => {
def filterList(l : List[Int], condition : Int, index: Int, acc: List[(Int, Int)]) : List[(Int, Int)] = l match {
case List() => acc
case h::tail =>
if (h > condition) filterList( tail, condition, index + 1, (index, h) :: acc )
else filterList( tail, condition, index + 1, acc )
}
filterList(list, 10, 0, List() )
}
val r = lambda( s )
答案 1 :(得分:0)
嗯......有很多方法可以解决这个问题。
首先让我们看一下<p class="red">red heart</p>
<p class="green">green heart</p>
<p class="blue">blue heart</p>
更广泛的#34;命令式解决方案,
var
现在......我们可以更多地看一下&#34;类似功能的&#34;递归方法,
val lambda = (list: List[Int]) => {
var indexList = List.empty[Int]
var i = 0
for (elem <- list) {
if (elem > 10) indexList = i +: indexList
i = i + 1
}
indexList.reverse
}