Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Два типа функций / 25 сообщений из 29, страница 1 из 2
01.12.2012, 10:05
    #38060891
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Есть два типа функций по критерию способ присваивания результата

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#include <iostream>
using namespace std;

int outFunc(int a) { return a + 1; }
void inFunc(int a, int& out) { out += 1; }

int main()
{
    int a = 5;
    a = outFunc(a); // 5 => 6
    cout << a; // 6
    inFunc(a, a); // 6 => 7
    cout << a; // 7
    
    return 0;
}



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

Какое слово вставить вместо многоточия??
...
Рейтинг: 0 / 0
01.12.2012, 10:20
    #38060893
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Первый вариант можно называть pure functions . Если еще задаться доп. условием что в теле этой функции
нет модификаций глобальных переменных или вызовов глобальных методов.

Второй вариант - не знаю. Возможно это просто процедура с out-параметром.
По синтаксису С++ это функция. А по смыслу - процедура.
...
Рейтинг: 0 / 0
01.12.2012, 10:50
    #38060909
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
mayton,

процедурная функция это корректный термин в cs??
...
Рейтинг: 0 / 0
01.12.2012, 11:04
    #38060913
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
cs это что? Counter Strike?
...
Рейтинг: 0 / 0
01.12.2012, 11:21
    #38060918
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
...
Рейтинг: 0 / 0
01.12.2012, 11:35
    #38060922
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Я не знаю такого термина как процедурная функция.
Лучше просто процедура. Или метод.
...
Рейтинг: 0 / 0
01.12.2012, 11:49
    #38060930
Yatha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
вторая функция называется "с побочным эффектом"
...
Рейтинг: 0 / 0
01.12.2012, 11:57
    #38060933
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Я бы сказал короче. Грязная.
...
Рейтинг: 0 / 0
01.12.2012, 12:03
    #38060936
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
mayton,

если я скажу ему используй грязную функцию, то он не поймет чего я от него хочу.
...
Рейтинг: 0 / 0
01.12.2012, 12:05
    #38060940
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Можно ли как-нибудь сказать короче эту фразу: используй функции, в которых результат передается через аргумент, а не через возвращаемое значение.
...
Рейтинг: 0 / 0
01.12.2012, 12:09
    #38060944
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Я вот вчера одну работницу гипермаркета обозвал кобылой.
Я -бы мог сказать "эта некомпетентная сотрудница отдела
касс, не умеющая пользоваться платёжным терминалом".

Но я сказал просто и понятно. И без обид. Кобыла
она и есть кобыла. И ничего обидного нет.
...
Рейтинг: 0 / 0
01.12.2012, 12:26
    #38060959
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
mayton,

конечно вам это не обидно, вы ведь не можете чувствовать так же как она. Вы ведь мужчина.

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

Короче, если бы рядом был её парень, то может быть вам было бы трудно за базар ответить...
...
Рейтинг: 0 / 0
01.12.2012, 13:09
    #38060984
DotNot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Lumixmayton,

http://en.wikipedia.org/wiki/Computer_science в прошлом.

Ныне, cs - это Си Шарп! C#
...
Рейтинг: 0 / 0
01.12.2012, 14:43
    #38061035
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
DotNot,

где пруф?
...
Рейтинг: 0 / 0
01.12.2012, 14:54
    #38061044
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Я тоже нашел С# первой ссылкой.

По теме кассовых кобыл. Я - чел прямолинейный. Если говорю что функция грязная -
значит она грязная. И нечего елейничать с девелопером. Чай не любовники.

Не понял 1 раз - объяснил. Не понял 2 раз - объяснил пристально глядя в глаза.
Ну а на третий раз можно и в сад послать.
...
Рейтинг: 0 / 0
01.12.2012, 15:39
    #38061067
Yatha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
назвать то можно как угодно, но есть и устоявшиеся термины

wiki
Побочный эффект (программирование)
Материал из Википедии — свободной энциклопедии

Побо́чный эффе́кт функции — возможность в процессе выполнения своих вычислений: читать и модифицировать значения глобальных переменных, осуществлять операции ввода/вывода, реагировать на исключительные ситуации, вызывать их обработчики. Если вызвать функцию с побочным эффектом дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата вычислятся разные значения. Такие функции называются недетерминированными функциями с побочными эффектами.
...
Рейтинг: 0 / 0
01.12.2012, 15:42
    #38061069
Yatha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
По идее, функция не должна ничего менять.
А должна менять процедура.
Но в Си процедур не предусмотрено.
...
Рейтинг: 0 / 0
01.12.2012, 17:46
    #38061131
Sheraton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Разница между функциями и процедурами пошла из паскаля. В паскале функциями называют те, которые возвращают значение, если значение не возвращается, то это в паскале называется процедурой.
По поводу темы, предлагаю более канонические формулировки, вместо диковинных "грязных/чистых". Первая функцию можно назвать: "Функция возвращающая значение, но не меняющая значение своего аргумента", вторую функцию можно назвать: "Функция НЕ возвращающая значение, но меняющая значение своего аргумента".
...
Рейтинг: 0 / 0
01.12.2012, 19:07
    #38061173
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Капец. Слов нет.
...
Рейтинг: 0 / 0
02.12.2012, 02:09
    #38061464
Yatha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
SheratonРазница между функциями и процедурами пошла из паскаля. В паскале функциями называют те, которые возвращают значение, если значение не возвращается, то это в паскале называется процедурой.
По поводу темы, предлагаю более канонические формулировки, вместо диковинных "грязных/чистых". Первая функцию можно назвать: "Функция возвращающая значение, но не меняющая значение своего аргумента", вторую функцию можно назвать: "Функция НЕ возвращающая значение, но меняющая значение своего аргумента".

а ещё есть третий тип, которая и возвращает значение и меняет значение своего аргумента. Например, возвращает код ошибки и текст ошибки в виде аргумента.
...
Рейтинг: 0 / 0
02.12.2012, 11:09
    #38061531
Sheraton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Yatha
а ещё есть третий тип, которая и возвращает значение и меняет значение своего аргумента. Например, возвращает код ошибки и текст ошибки в виде аргумента.

Ну тогда уж и четвертая :)) которая и аргументы не меняет и значение не возвращает ))
...
Рейтинг: 0 / 0
02.12.2012, 18:01
    #38061759
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
А есть еще функции из которых управление не возвращается в вызывающий код :)
...
Рейтинг: 0 / 0
02.12.2012, 18:25
    #38061779
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Есть еще примитивно-рекурсивные, частично-рекурсивные e.t.c.
...
Рейтинг: 0 / 0
02.12.2012, 20:51
    #38061875
Yatha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
Anatoly MoskovskyА есть еще функции из которых управление не возвращается в вызывающий код :)
и куда передаётся после отрабатывания функции?
...
Рейтинг: 0 / 0
02.12.2012, 22:01
    #38061939
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два типа функций
YathaAnatoly MoskovskyА есть еще функции из которых управление не возвращается в вызывающий код :)
и куда передаётся после отрабатывания функции?
В обработчик исключений или например вообще никуда, в случае вызова exit().
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Два типа функций / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]