İtiraf etmeliyim ki fonksiyonel programlama hakkında fazla bir şey bilmiyorum. Buradan ve buradan okudum ve böylece fonksiyonel programlamada, bir fonksiyonun, kaç kez çağrıldığına bakılmaksızın, aynı girdi için aynı çıktıyı döndürdüğünü öğrendim. Tam olarak, fonksiyon ifadesinde yer alan giriş parametrelerinin aynı değeri için aynı çıktıyı değerlendiren matematiksel bir fonksiyon gibidir.
Örneğin, şunu düşünün:
f(x,y) = x*x + y; // It is a mathematical function
Kaç kez kullanırsanız kullanın f(10,4)
, değeri her zaman olacaktır 104
. Bu nedenle, nerede olursanız olun , tüm ifadenin değerini f(10,4)
değiştirmeden onu 104
değiştirebilirsiniz. Bu özelliğe, bir ifadenin referans şeffaflığı denir .
Wikipedia'nın dediği gibi ( bağlantı ),
Tersine, işlevsel kodda, bir işlevin çıktı değeri yalnızca işleve girilen bağımsız değişkenlere bağlıdır, bu nedenle x işlevinin x bağımsız değişkeni için aynı değerle iki kez çağrılması her iki seferde de aynı sonucu f (x) üretir.
Fonksiyonel programlamada ( şimdiki zamanı döndüren) bir zaman fonksiyonu mevcut olabilir mi?
Evet ise, o zaman nasıl var olabilir? Fonksiyonel programlama ilkesini ihlal etmiyor mu? Özellikle fonksiyonel programlamanın özelliğinden olan referans şeffaflığı ihlal eder (eğer doğru anlarsam).
Ya da hayır ise fonksiyonel programlamanın şimdiki zamanını nasıl bilebilirsiniz?