Вопрос по subroutine, function, terminology, theory – В чем разница между подпрограммой и функцией? [Дубликат]

11

Possible Duplicate:
What is the difference between a ‘function’ and a ‘procedure’?

Я искал в Интернете ответ на этот вопрос, и я получил ответ, что функция может вернуть значение, изменить значение и т. Д., Но подпрограмма не может. Но я не удовлетворен этим объяснением, и мне кажется, что разница должна быть не просто вопросом терминологии.

Поэтому я ищу более концептуальный ответ на вопрос.

Смотрите также:What is a coroutine?, а такжеWhat is the difference between a method and a function? gerrit
На самом деле, нет. Это единственное важное различие. Возможно, другое дело в том, что современные языки (C, Java, PHP и т. Д.) Не используют подпрограммы, а только функции. В противном случае я бы сказал, что технические детали совпадают: «позвоните»; или "jmp" Инструкция по сборке, в основном. user529758

Ваш Ответ

4   ответа
0

альную переменную или переменную, объявленную вне тела функции. В этой ситуации функция может только имитировать ее математический счетчик (вещь, которая отображает математический объект в другой математический объект)

Подпрограмма не возвращает ничего и обычно является нечистой, поскольку она должна изменить некоторое глобальное состояние или переменную, иначе нет смысла вызывать это. Для подпрограммы нет математической параллели.

4

что в математическом смысле функция должна быть «четко определенной», то есть ее результат равенuniquely определяется его входами, в то время как это часто не относится к языкам программирования.

Те чтоdo сделать эту гарантию (а также то, что их функции не вызывают побочных эффектов)pure functional languagesПримером которого является Haskell. Они имеют преимущество (среди прочего) в том, что их функции доказуемо корректны в их поведении, что, как правило, невозможно, если функции зависят от внешнего состояния и / или имеют побочные эффекты.

5

a piece of code that accepts zero or more input values and returns zero or one output value.

Наиболее распространенным определением подпрограммы являетсяa function that does not return anything and normally does not accept anything, Это всего лишь кусок кода с именем.

На самом деле, в большинстве языков функции не отличаются тем, как вы их объявляете. Таким образом, подпрограмма может называться функцией, но функция не обязательно может называться подпрограммой.

Также есть люди, которые считают функции и подпрограммы одним и тем же с другим именем.

Подпрограмма - Википедия

24

которое представляет собой отображение 1 или более входных значений.1

Подпрограмма - это термин общего назначения для любого фрагмента кода, который имеет определенную точку входа и выхода.

Однако точное значение этих терминов будет варьироваться от контекста к контексту.

1. Obviously, this is not the formal mathematical definition of a function.

Вот Это Да! Теперь это то, что я искал! Спасибо! CodeBlue
true Функция не имеет побочных эффектов.

Похожие вопросы