Procedures are sub-routines that do not return a result, and are declared by a procedure statement.   

Just like a function, a procedure declaration requires values to be input as parameters inside parentheses, but can also contain no parameter at all.  Pre-defined procedures such as ClearAllGlobals and ClearAllLocals have no parameters and therefore present with no parentheses.  

But unlike a function, Procedures do not generally return a result upon completion.  Any results obtained from the execution of a Procedure are either contained in one or more output arguments, or have another purpose such as writing something to the screen or writing to a file.  

Procedures are extremely useful – for breaking long scripts into easily readable smaller sections, and for portions of code that are to be run repeatedly.    This allows scripts and processing to be uncluttered and well-structured, easily understood, and easily followed.

When a Procedure is defined in a class, it is commonly called a Method.