In Python, we have the star (or "*" or "unpack") operator, that allows us to unpack a list for convenient use in passing positional arguments. For example:
range(3, 6)
args = [3, 6]
# invokes range(3, 6)
range(*args)
In this particular example, it doesn't save much typing, since range only takes two arguments. But you can imagine that if there were more arguments to range, or if args was read from an input source, returned from another function, etc. then this could come in handy.
In Scala, I haven't been able to find an equivalent. Consider the following commands run in a Scala interactive session:
case class ThreeValues(one: String, two: String, three: String)
//works fine
val x = ThreeValues("1","2","3")
val argList = List("one","two","three")
//also works
val y = ThreeValues(argList(0), argList(1), argList(2))
//doesn't work, obviously
val z = ThreeValues(*argList)
Is there a more concise way to do this besides the method used in val y?