Pseudocode: \Function vs. \Procedure?

According to algpseudocode, these two are structurally the same, apart from their name:

\algdef{SE}[PROCEDURE]{Procedure}{EndProcedure}%
   [2]{\algorithmicprocedure\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
   {\algorithmicend\ \algorithmicprocedure}%
\algdef{SE}[FUNCTION]{Function}{EndFunction}%
   [2]{\algorithmicfunction\ \textproc{#1}\ifthenelse{\equal{#2}{}}{}{(#2)}}%
   {\algorithmicend\ \algorithmicfunction}%

From a programming perspective, the difference is embedded in the language and have the following commonly-used structure (in laymen's terms):

  • Procedure: A collection of instructions
  • Function: A collection of instructions that also returns something

A minimal example indicating their typical usage:

enter image description here

\documentclass{article}
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\begin{document}
\begin{algorithmic}
\Procedure{name}{params}
  \State body
\EndProcedure
\Function{name}{params}
  \State body
  \State \Return something
\EndFunction
\end{algorithmic}
\end{document}

This is not at all a TeX-related question, but a function returns a value while a procedure does not (void in C++). A procedure only performs some actions, it is invoked because of its side effects.