Name this python/ruby language construct (using array values to satisfy function parameters)
language-features, python, ruby, syntax
Solution
The Python docs call this Unpacking Argument Lists. It's a pretty handy feature. In Python, you can also use a double asterisk (**) to unpack a dictionary (hash) into keyword arguments. They also work in reverse. I can define a function like this:
def sum(*args):
result = 0
for a in args:
result += a
return result
sum(1,2)
sum(9,5,7,8)
sum(1.7,2.3,8.9,3.4)
To pack all arguments into an arbitrarily sized list.
Problem
What is this language construct called? In Python I can say: ``` def a(b,c): return b+c a(*[4,5]) ``` and get 9. Likewise in Ruby: ``` def a(b,c) b+c end a(*[4,5]) ``` What is this called, when one passes a single array to a function which otherwise requires multiple arguments? What is the name of the `*` operator? What other languages support this cool feature?