Explaining the difference between a function and procedure