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?

Original source

Related problems