# Procedures > [HTML Version](procedures.htm) _Updated February 2024_ **\{PRIVATE\} PROCEDURE procname(var1\{=defval\} \{as \{:\{:** ** ** ** ** ** ** **ENDPROCEDURE** **Notes** Procedures are exactly like [User-Defined Functions](user-definedfunctions.htm.md) except they: • Do not return any value and thus cannot be used as expressions. • Cannot be given names starting with FN' (which is used exclusively for functions). • Use slightly different but parallel keywords: PROCEDURE, ENDPROCEDURE, EXITPROCEDURE vs. FUNCTION, ENDFUNCTION, EXITFUNCTION. To call the procedure, use a form of the CALL statement: CALL procname(var1,...varn) Note that functions can also be called in the same way, and their return values can be ignored, so there is no actual need for procedures at all, and many programmers just use functions exclusively. **History** 2016 August, A-Shell 6.3.1523, compiler edit 770: Add private attribute for functions and procedures. 2014 January, A-Shell 6.1.1373: [Named parameters](errortrappinginfunctions.htm.md) implemented in A-Shell.