Haskell - Fonksiyon Kompozisyonu
Function Compositionbir işlevin çıktısını başka bir işlevin girdisi olarak kullanma işlemidir. Arkasındaki matematiği öğrenirsek daha iyi olurcomposition. Matematikte,composition ile gösterilir f{g(x)} nerede g() bir fonksiyondur ve çıktısı başka bir fonksiyonun girdisi olarak kullanılır, yani f().
Bir işlevin çıktı türünün ikinci işlevin girdi türüyle eşleşmesi koşuluyla işlev bileşimi herhangi iki işlev kullanılarak uygulanabilir. Haskell'de fonksiyon kompozisyonunu uygulamak için nokta operatörünü (.) Kullanıyoruz.
Aşağıdaki örnek koda bir göz atın. Burada, bir giriş sayısının çift mi yoksa tek mi olduğunu hesaplamak için fonksiyon bileşimini kullandık.
eveno :: Int -> Bool
noto :: Bool -> String
eveno x = if x `rem` 2 == 0
then True
else False
noto x = if x == True
then "This is an even Number"
else "This is an ODD number"
main = do
putStrLn "Example of Haskell Function composition"
print ((noto.eveno)(16))
Burada, main fonksiyon, iki fonksiyon diyoruz, noto ve eveno, eşzamanlı. Derleyici önce işlevi çağıracaktır"eveno()" ile 16bir argüman olarak. Bundan sonra derleyici,eveno girdi olarak yöntem noto() yöntem.
Çıktısı aşağıdaki gibi olacaktır -
Example of Haskell Function composition
"This is an even Number"
Girdi olarak 16 sayısını sağladığımız için (bu çift sayıdır), eveno() fonksiyon döner trueiçin girdi haline gelen noto() işlevi ve şu çıktıyı döndürür: "Bu bir çift Sayıdır".