Scala中的List列表

时间:2017-02-18 13:14:08

标签: scala indexing lambda

我是斯卡拉的新人。

例如,我有一个像

这样的列表

val s = List(5, 11, 15, 7)

我需要一个lambda函数来创建一个超过10个元素的索引的新列表。我不能使用语言Scala库或函数。只有标准的Scala机会。

如何计算这些元素的指数?谢谢!

2 个答案:

答案 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
}