Haskell:
การจัดระเบียบโค้ดเข้าไปในฟังก์ชัน
วิธีการ:
นี่คือวิธีที่คุณสามารถเขียนและใช้งานฟังก์ชันใน Haskell:
-- การประกาศฟังก์ชันง่ายๆ เพื่อบวกตัวเลขสองตัว
addNumbers :: Int -> Int -> Int
addNumbers x y = x + y
-- การใช้งานฟังก์ชัน
main = print (addNumbers 3 5)
ผลลัพธ์:
8
คุณยังสามารถสร้างฟังก์ชันระดับสูงได้:
-- รับฟังก์ชันหนึ่งฟังก์ชันและนำไปใช้สองครั้งกับบางอย่าง
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
-- การใช้งาน applyTwice กับฟังก์ชันไม่ระบุชื่อ
main = print (applyTwice (*2) 5)
ผลลัพธ์:
20
แง่ลึก
Haskell, ภาษาที่เป็นฟังก์ชันอย่างบริสุทธิ์, ถือฟังก์ชันเป็นสมาชิกชั้นหนึ่ง ในแง่ประวัติศาสตร์, นี่มีรากฐานมาจากแคลคูลัสแลมบ์ดา, กรอบการทำงานพื้นฐานในการคำนวณ ไม่เหมือนกับภาษาคำสั่งที่ฟังก์ชันเป็นลำดับของคำสั่ง, ใน Haskell, ฟังก์ชันเป็นนิพจน์ที่อธิบายความสัมพันธ์ระหว่างข้อมูล
มีทางเลือกอื่นในการเขียนฟังก์ชันดิบสำหรับการใช้ซ้ำ พิจารณาใช้ typeclasses สำหรับ polymorphism หรือการใช้งานโมดูลเพื่อกลุ่มฟังก์ชันที่เกี่ยวข้องกัน Haskell การประเมินค่าแบบเลือกสรรยังส่งผลต่อการทำงานของฟังก์ชัน—ฟังก์ชันจะไม่ถูกประเมินค่าจนกระทั่งผลลัพธ์เป็นที่ต้องการ, ซึ่งอาจส่งผลต่อการพิจารณาประสิทธิภาพ
ดูเพิ่มเติม
- Official Haskell Documentation: https://www.haskell.org/documentation/
- “Learn You a Haskell for Great Good!” โดย Miran Lipovača, หนังสือที่เหมาะสำหรับผู้เริ่มต้น: http://learnyouahaskell.com/
- “Real World Haskell” โดย Bryan O’Sullivan, Don Stewart, และ John Goerzen: http://book.realworldhaskell.org/