SORU
22 HAZİRAN 2012, Cuma


Saf fonksiyon faydaları

Bugün saf işlevi hakkında okuyordum, onun kullanımı ile kafam karıştı:

Bir fonksiyon eğer girişler aynı değerleri aynı kümesi döndürürse saf olduğu söyleniyor ve gözlemlenebilir herhangi bir yan etkisi yoktur.

örneğin strlen() rand() pis ise saf bir fonksiyonudur.

__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

Yukarıdaki programı pure beyan yokluğunda aynı şekilde davranır.

purebir işlev olarak ilan yararları eğer çıkış değişim ise orada ne var?

CEVAP
22 HAZİRAN 2012, Cuma


pure derleyici bazı optimizasyon yapmak bilmesini sağlar işlevi hakkında: kod biraz hayal gibi

for (int i = 0; i < 1000; i  )
{
    printf("%d", fun(10));
}

Saf bir fonksiyonu, derleyici fun(10) bir kez sadece bir kez, 1000 kez yerine değerlendirmek gerektiğini biliyor. Karmaşık bir işlev için, bu büyük bir galibiyet olmuş.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • brokenbellsVEVO

    brokenbellsV

    11 EYLÜL 2009
  • cyriak

    cyriak

    29 Mart 2006
  • Vsauce

    Vsauce

    30 Temmuz 2007