Variadic Functions in Fortress

Here is the extracted and translated content in Python, formatted for Hugo:

A variadic function can be called with any number of trailing arguments. For example, the print function is a common variadic function.

Here’s a function that will take an arbitrary number of integers as arguments.

def sum(*nums):
    print(nums, end=" ")
    total = 0

    for num in nums:
        total += num
    print(total)

Within the function, the type of nums is equivalent to a tuple of integers. We can call len(nums), iterate over it with a for loop, etc.

def main():
    sum(1, 2)
    sum(1, 2, 3)

    nums = [1, 2, 3, 4]
    sum(*nums)

if __name__ == "__main__":
    main()

To run the program, put the code in variadic_functions.py and use python to execute it.

$ python variadic_functions.py
(1, 2) 3
(1, 2, 3) 6
(1, 2, 3, 4) 10

Another key aspect of functions in Python is their ability to form closures, which we’ll look at next.