Haskell - องค์ประกอบของฟังก์ชัน
Function Compositionคือกระบวนการใช้เอาต์พุตของฟังก์ชันหนึ่งเป็นอินพุตของฟังก์ชันอื่น จะดีกว่าถ้าเราเรียนรู้คณิตศาสตร์เบื้องหลังcomposition. ในวิชาคณิตศาสตร์composition แสดงโดย f{g(x)} ที่ไหน g() เป็นฟังก์ชันและเอาต์พุตที่ใช้เป็นอินพุตของฟังก์ชันอื่นนั่นคือ f().
องค์ประกอบของฟังก์ชันสามารถใช้งานได้โดยใช้ฟังก์ชันสองฟังก์ชันใดก็ได้หากประเภทเอาต์พุตของฟังก์ชันหนึ่งตรงกับประเภทอินพุตของฟังก์ชันที่สอง เราใช้ตัวดำเนินการจุด (.) เพื่อใช้องค์ประกอบของฟังก์ชันใน Haskell
ดูโค้ดตัวอย่างต่อไปนี้ ที่นี่เราได้ใช้องค์ประกอบของฟังก์ชันเพื่อคำนวณว่าตัวเลขที่ป้อนเป็นเลขคู่หรือเลขคี่
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))
ที่นี่ใน main ฟังก์ชันเรากำลังเรียกใช้สองฟังก์ชัน noto และ evenoพร้อมกัน. คอมไพเลอร์จะเรียกใช้ฟังก์ชันก่อน"eveno()" ด้วย 16เป็นข้อโต้แย้ง หลังจากนั้นคอมไพเลอร์จะใช้เอาต์พุตของไฟล์eveno วิธีการเป็นอินพุตของ noto() วิธี.
ผลลัพธ์จะเป็นดังนี้ -
Example of Haskell Function composition
"This is an even Number"
เนื่องจากเราจัดหาหมายเลข 16 เป็นอินพุต (ซึ่งเป็นเลขคู่) eveno() ฟังก์ชันส่งกลับ trueซึ่งจะกลายเป็นอินพุตสำหรับไฟล์ noto() และส่งกลับผลลัพธ์: "นี่คือเลขคู่"