Haskell - Thành phần hàm
Function Compositionlà quá trình sử dụng đầu ra của một chức năng này làm đầu vào của một chức năng khác. Sẽ tốt hơn nếu chúng ta học toán học đằng saucomposition. Trong toán học,composition được ký hiệu bởi f{g(x)} Ở đâu g() là một hàm và đầu ra của nó được sử dụng làm đầu vào của một hàm khác, nghĩa là f().
Thành phần chức năng có thể được thực hiện bằng cách sử dụng hai chức năng bất kỳ, miễn là kiểu đầu ra của một chức năng phù hợp với kiểu đầu vào của chức năng thứ hai. Chúng tôi sử dụng toán tử dấu chấm (.) Để triển khai thành phần hàm trong Haskell.
Hãy xem đoạn mã ví dụ sau. Ở đây, chúng tôi đã sử dụng thành phần hàm để tính toán xem một số đầu vào là chẵn hay lẻ.
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))
Đây, trong main , chúng tôi đang gọi hai hàm, noto và eveno, đồng thời. Trình biên dịch đầu tiên sẽ gọi hàm"eveno()" với 16như một lập luận. Sau đó, trình biên dịch sẽ sử dụng đầu ra củaeveno phương thức như một đầu vào của noto() phương pháp.
Đầu ra của nó sẽ như sau:
Example of Haskell Function composition
"This is an even Number"
Vì chúng tôi đang cung cấp số 16 làm đầu vào (là số chẵn), eveno() hàm trả về true, trở thành đầu vào cho noto() và trả về kết quả: "Đây là một số chẵn".