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:
\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.