Scala返回列表,其中包含已过滤掉的某些元素

时间:2017-11-21 20:59:53

标签: scala data-structures

我正在尝试获取现有列表,在每个元素上运行一个函数,如果该函数返回false,则从列表中过滤掉它。

我不太明白函数式编程,因为我尝试了以下内容:

for (elem <- myList) {      
  if(is_legal(elem) == false) {
    myList.filter(_ != elem)
  }
}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:4)

您使用filter时有正确的想法;你所要做的就是传递is_legal谓词:

val filteredList = myList.filter(is_legal)

答案 1 :(得分:0)

为了更好地理解您,上面的答案可以表示为

val filteredList = myList.filter(is_legal(_))

或者

val filteredList = myList.filter(x => is_legal(x))