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
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.
Scala fonksiyonel programlama geleneks...
Ne zaman çalıştırmak için bir fonksiyo...
Karşılaştırma çekirdekli.uyumsuz ve Fo...
Fonksiyonel Programlama vurgu Çok özyi...
Mantıksal programlama ve fonksiyonel p...