Возможный дубликат:
В чем разница между процедурой 'function and a'?
Я искал в Интернете ответ на этот вопрос, и я получил ответ, что функция может возвращать значение, изменять значение и т.д., но подпрограмма не может. Но я не удовлетворен этим объяснением, и мне кажется, что разница должна быть не просто терминологией.
Итак, я ищу более концептуальный ответ на вопрос.