Каково различие между “функцией” и “процедурой”?

согласно ответу, полученному от данного API

let weather=" assign response got from API to here";

let minArray=[];
let maxArray=[];  
for (let i of weather.list)  
 {  minArray.push(Number( i.main.temp_min)) ; 
    maxArray.push(Number(i.main.temp_max));  }
  console.log("min temp is "+ Math.min(...minArray));
 console.log("max temp is "+ Math.max(...maxArray));
187
задан nbro 3 January 2017 в 14:54
поделиться

8 ответов

Функция возвращает значение, и процедура просто выполняет команды.

Функция имени прибывает из математики. Это используется для вычисления значения на основе входа.

Процедура является рядом команды, которая может быть выполнена в порядке.

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

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

280
ответ дан Toon Krijthe 23 November 2019 в 05:46
поделиться

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

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

4
ответ дан Anton Gogolev 23 November 2019 в 05:46
поделиться

Более строго функция f повинуется свойству, что f (x) = f (y), если x = y, т.е. это вычисляет тот же результат каждый раз, когда это называют с тем же аргументом (и таким образом это не изменяет состояние системы.)

Таким образом, рэнд () или печать ("Привет"), и т.д. не функции, но процедуры. В то время как sqrt (2.0) должен быть функцией: нет никакого заметного эффекта или изменения состояния, неважно, как часто каждый называет его, и оно всегда возвращается 1.41 и некоторые.

5
ответ дан Ingo 23 November 2019 в 05:46
поделиться

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

Функции и процедуры являются реализациями тех. Обычно возвращаемые значения функций и процедуры ничего не возвращают.

10
ответ дан sharptooth 23 November 2019 в 05:46
поделиться

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

11
ответ дан HS. 23 November 2019 в 05:46
поделиться

Пример в C:

// function
int square( int n ) {
   return n * n;
}

// procedure
void display( int n ) {
   printf( "The value is %d", n );
}

Хотя необходимо отметить, что Стандарт C не говорит о процедурах, только функции.

16
ответ дан 23 November 2019 в 05:46
поделиться

Это зависит от контекста.

На подобных Паскалю языках функции и процедуры являются отличными объектами, отличающимися по тому, делают ли они или не возвращают значение. Они ведут себя по-другому wrt. синтаксис языка (например, вызовы процедуры формируют операторы; Вы не можете использовать вызов процедуры в выражении по сравнению с вызовами функции, не формируют операторы, необходимо использовать их в других операторах). Поэтому воспитанные в Паскале программисты дифференцируются между теми.

В подобном языкам C, и много других современных языков, не стало этого различия; на статически типизированных языках процедуры являются просто функциями с забавным типом возврата. Это, вероятно, почему они используются попеременно.

На функциональных языках обычно нет никакой такой вещи как процедура - все - функция.

40
ответ дан mikera 23 November 2019 в 05:46
поделиться

В большинстве контекстов: функция возвращает значение, в то время как процедура не делает. Оба - части кода, группировавшегося, чтобы сделать то же самое.

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

f(x)=(1+x)
g(x)=.5*(2+x/2)

Здесь, f является той же функцией как g, но является другой процедурой.

3
ответ дан xtofl 23 November 2019 в 05:46
поделиться
Другие вопросы по тегам:

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