I'm having trouble to implement the following requirement in a functional way in scala. Given a predefined number of boolean flags, I want to build up a collection of numbers. For each (true) flag, a hardcoded number should be included in the collection.This is the unsatifying solution I have so far:  def createCodeArray(flagA:Boolean, flagB:Boolean, flagC:Boolean): Seq[Int] = {    val codes = ListBuffer.empty[Int]    if(flagA) codes += 2    if(flagB) codes += 7    if(flagC) codes += 12    return codes  }I'm trying to achieve to same with pattern matching, but I don't want to list all the possible combinations. Also, I'd like to avoid mutable data-structures.Any suggestion on how to write this in a functional way is much appreciated
Translate boolean flags to collection of numbers in scala
scala
You could use tuples to pair your flags with an Int. Throw those into a Seq and then perform a filter and then a map on that Seq. Here is how that would look:def f(a: Boolean, b: Boolean, c: Boolean): Seq[Int] = { val xs = Seq((a, 2), (b, 7), (c, 12)) xs.filter(t => t._1).map(t => t._2) }Note that in Scala you don't need to use a return statement as long as the last bit of code in your function returns a new value.