Unlike C family languages, Ada distinguishes between procedures and functions. Specifically, functions
must return a value and must be called as part of a larger expression. Procedures never return a value (in the sense that functions do) and must be called in their own statements. Collectively procedures and functions are called subprograms in situations where their differences don't matter.