Procedures (also called function or subroutine) may be used in order to solve often (re-)occurring challenges. Like this, we may specify that certain successive actions are needed in order to solve a challenge (=programming a procedure). When we then encounter this challenge, we can simply call the procedure (and let the procedure solve this challenge for us).