Scala: drop elements in Sequence Can I reduce the loop inside my method with map or is there a shorter implementation of this code that's dropping elements in sequence?

// Method that drops one element in sequence
def drop_Val_In_List[String](ls: Seq[String], value: String):  Seq[String] = {
    val index = ls.indexOf(value)  //index is -1 if there is no matc
    if (index &lt; 0) {
        ls
    } else if (index == 0) {
        ls.tail
    } else {
        // splitAt keeps the matching element in the second group
        val (a, b) = ls.splitAt(index)
        a ++ b.tail
    }
}

val KeepCols = Seq(&quot;id&quot;, &quot;type&quot;, &quot;month&quot;, &quot;car&quot;, &quot;road&quot;)


// Generalization of the above method to drop multiple elements
def drop_Val_List_In_List[String](ls: Seq[String], in_ls: Seq[String]): Seq[String] = {
    var tmp_ = ls
    //println(tmp.getClass)
    for(x &lt;- in_ls ){ // should work without var x
        tmp_ = drop_Val_In_List(tmp_, x)
    }
    tmp_;
}

val tmp = drop_Val_List_In_List(KeepCols, List(&quot;id&quot;, &quot;type&quot;, &quot;month&quot;))
```
Follow the naming convention of the language
For scala, this is here. Spell methods and variables in lower camel case:
drop_Val_In_List
drop_Val_List_In_List
in_ls

Use the most appropriate data structure
To me, it seems like you want a set, not a sequence/list. Set also has the method you want:
val KeepCols = Set(&quot;id&quot;, &quot;type&quot;, &quot;month&quot;, &quot;car&quot;, &quot;road&quot;)
val tmp = KeepCols.diff(Set(&quot;id&quot;, &quot;type&quot;, &quot;month&quot;))

If you don't want to use a set, Seq also has diff.