SORU
1 EYLÜL 2011, PERŞEMBE


Ne zaman bir fonksiyon fonksiyonel programlama bulunabilir?

Fonksiyonel programlama hakkında pek bir şey bilmediğimi itiraf etmem gerekiyor. Orada ve burada okudum, ve çok fonksiyonel programlamada, bir işlevi aynı çıktı, aynı giriş için verir, işlevi ne olursa olsun geldi. İşlev ifadesi içeren giriş parametresi aynı değeri aynı çıktı hesaplayan matematiksel fonksiyon benziyor.

Örneğin, bu göz önünde bulundurun:

f(x,y) = x*x   y; //it is a mathematical function

f(10,4), değeri kullandığınız ne olursa olsun, her zaman 104 olacak. f(10,4), yazdığın her yerde olduğu gibi, bütün ifadenin değeri değiştirmeden 104, ile değiştirebilirsiniz. Bu özellik bir ifade referential transparency olarak adlandırılır.

Wikipedia diyor (link) gibi

Diğer taraftan, fonksiyonel kod, çıkış değeri bir fonksiyonu olarak değişir sadece üzerinde bağımsız değişkenler olan giriş fonksiyonu, arama fonksiyonu f iki kez aynı değer için bir değişken x aynı sonucu üretmek f(x) iki kez.

Benim sorum ise şu: bir süre çalışabilir (hangi döndürürmevcutzaman) mevcut fonksiyonel programlama?

  • Evet, nasıl var olabilir? Fonksiyonel programlama ilkesine aykırı değil midir? Özellikle fonksiyonel programlama özelliği eğer doğru anladıysam () biri olan referential transparency ihlal ediyor.

  • Ya da, nasıl bir fonksiyonel programlama geçerli saati bilebilir? hayır

CEVAP
1 EYLÜL 2011, PERŞEMBE


Evet ve hayır.

FP farklı diller farklı onları çözmek.

(Çok saf bir kişi tüm bu şeyler bir şey olmalı Haskell adlı IO Monad - herebkz. Başka bir giriş (ve çıkış) işlevi (dünya-devlet) içine almak, ya da daha kolay olarak "impureness" olur değişen zaman alması gibi. bir yer olarak düşünebilirsiniz

F gibi diğer diller# sadece bazı impureness aynı giriş için farklı değerler döndüren bir işlevi var böylece ve - gibi inşa etmişlerdirnormalzorunlu dil.

Jeffrey Burka zleri sözü: Burada düz HaskellWiki intro IO için güzel Monad.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • Huot Media

    Huot Media

    7 Mayıs 2010
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011