Преимущества чистой функции

Сегодня я читал о чистой функции и запутался в ее использовании:

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

напр. strlen()— чистая функция, а rand()— нечистая.

__attribute__ ((pure)) int fun(int i)
{
    return i*i;
}

int main()
{
    int i=10;
    printf("%d",fun(i));//outputs 100
    return 0;
}

http://ideone.com/33XJU

Вышеприведенная программа ведет себя так же, как и при отсутствии объявления pure.

Каковы преимущества объявления функции как чистой[если нет изменений в выходе]?

79
задан Richard JP Le Guen 14 March 2013 в 02:50
поделиться