# Glossary

**function:** A named sequence of statements that performs some useful operation. Functions may or may not take arguments and may or may not produce a result.

**function definition:** A statement that creates a new function, specifying its name, parameters, and the statements it executes.

**function object:** A value created by a function definition. The name of the function is a variable that refers to a function object.

**header:** The first line of a function definition.

**body:** The sequence of statements inside a function definition.

**parameter:** A name used inside a function to refer to the value passed as an argument.

**function call:** A statement that executes a function. It consists of the function name followed by an argument list.

**argument:** A value provided to a function when the function is called. This value is assigned to the corresponding parameter in the function.

**local variable:** A variable defined inside a function. A local variable can only be used inside its function.

**return value:** The result of a function. If a function call is used as an expression, the return value is the value of the expression.

**non-void function:** A function that returns a value.

**void function:** A function that doesn't return a value.

**module:** A file that contains a collection of related functions and other definitions.

**import statement:** A statement that reads a module file and creates a module object.

**module object:** A value created by an `import` statement that provides access to the values defined in a module.

**dot notation:** The syntax for calling a function in another module by specifying the module name followed by a dot (period) and the function name.

**composition:** Using an expression as part of a larger expression, or a statement as part of a larger statement.

**flow of execution:** The order in which statements are executed during a program run.

**stack diagram:** A graphical representation of a stack of functions, their variables, and the values they refer to.

**frame:** A box in a stack diagram that represents a function call. It contains the local variables and parameters of the function.

**traceback:** A list of the functions that are executing, printed when an exception occurs.
