Glossary
--------
.. glossary::
    Algorithm
      A general process for solving a category of problems.

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

    Function Body
      The sequence of statements inside a function definition.

    Composition
      Using an expression as part of a larger expression, or a statement as part of a larger statement.

    Deterministic
      Pertaining to a program that does the same thing each time it runs given the same inputs.

    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.

    Flow of Execution
      The order in which statements are executed during a program run.

    Fruitful Function
      A function that returns a value.

    Function
      A named sequence of statements that performs some useful operation. Functions may or may not take
      arguments and may or may not return a value.

    Function Call
      A statement that executes a function. It consists of the function name followed by an argument list.

    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.

    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 data and code defined in a module.

    Parameter
      A name used inside a function to refer to the value passed as an argument.

    Pseudorandom
      Pertaining to a sequence of numbers that appear to be random, but are generated by a deterministic
      program.

    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.

    Void Function
      A function that does not have a return value.

.. dragndrop:: funct_glossary_one
    :practice: T
    :feedback: If you're stuck, look above for the definitions of these terms! Try again.
    :match_1: algorithm|||A general process for solving a category of problems.
    :match_2: argument|||A value provided to a function when the function is called. This value is assigned to the corresponding parameter in the function.
    :match_3: body|||The sequence of statements inside a function definition.
    :match_4: composition|||Using an expression as part of a larger expression, or a statement as part of a larger statement.
    :match_5: deterministic|||Pertaining to a program that does the same thing each time it runs, given the same inputs.

    Match the terms on the left with their defintions on the right.

.. dragndrop:: funct_glossary_two
    :practice: T
    :feedback: If you're stuck, look above for the definitions of these terms! Try again.
    :match_1: 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.
    :match_2: flow of execution|||The order in which statements are executed during a program run.
    :match_3: fruitful function|||A function that returns a value.
    :match_4: function|||A named sequence of statements that performs some useful operation.
    :match_5: function call|||A statement that executes a function.

    Match the terms on the left with their defintions on the right.

.. dragndrop:: funct_glossary_three
    :practice: T
    :feedback: If you're stuck, look above for the definitions of these terms! Try again.
    :match_1: function definition|||A statement that creates a new function, specifying its name, parameters, and the statements it executes.
    :match_2: function object|||A value created by a function definition.
    :match_3: header|||The first line of a function definition.
    :match_4: import statement|||A statement that reads a module file and creates a module object.
    :match_5: module object|||A value created by an ``import`` statement that provides access to the data and code defined in a module.

    Match the terms on the left with their defintions on the right.

.. dragndrop:: funct_glossary_four
    :practice: T
    :feedback: If you're stuck, look above for the definitions of these terms! Try again.
    :match_1: parameter|||A name used inside a function to refer to the value passed as an argument.
    :match_2: pseudorandom|||Pertaining to a sequence of numbers that appear to be random, but are generated by a deterministic program.
    :match_3: return value|||The result of a function.
    :match_4: void function|||A function that does not return a value.

    Match the terms on the left with their defintions on the right.
