# ความงามของ Math Functions ในภาษา Haskell
สวัสดีครับทุกท่าน! ในบทความวันนี้เราจะมาพูดถึงเรื่องที่น่าตื่นเต้นในโลกของการเขียนโปรแกรมด้วยภาษา Haskell—นั่นก็คือการใช้งาน Math functions พื้นฐานอย่าง `sqrt`, `sin`, `cos`, และ `tan` ซึ่งเป็นฟังก์ชันที่มีประโยชน์อย่างมากในการคำนวณทางคณิตศาสตร์และมี use cases มากมายในโลกจริงที่เราสามารถนำไปใช้ได้ ก่อนอื่นเรามาทำความรู้จักกับ Haskell ซึ่งเป็นภาษาโปรแกรมที่มีคุณสมบัติความเป็น functional programming และยังให้อภิปรายของตัวอย่างโค้ดที่กระชับและเข้าใจง่ายกันเลยครับ
ใน Haskell, เราใช้งาน math functions ได้ตรงไปตรงมามาก เพราะมันถูกนำมาใช้ภายในโมดูล `Prelude` ซึ่งเป็น library พื้นฐานที่ถูก import มาโดยอัตโนมัติ เราสามารถเรียกใช้ `sqrt`, `sin`, `cos`, และ `tan` ได้โดยตรงเหมือนกับภาษาโปรแกรมอื่นๆ ซึ่งมีข้อดีคือไม่ทำให้โค้ดของเรายุ่งยากและเข้าใจง่าย
ตัวอย่างโค้ดที่ 1: การใช้งาน `sqrt`
-- ฟังก์ชันเพื่อคำนวณรากที่สองของจำนวน
rootExample :: Floating a => a -> a
rootExample x = sqrt x
-- หากเราต้องการหาค่ารากที่สองของ 16 เราเพียงแค่เรียกใช้
main = print (rootExample 16)
-- ผลลัพธ์ที่แสดงออกมา: 4.0
ในตัวอย่างโค้ดนี้ `rootExample` เป็นฟังก์ชันที่รับพารามิเตอร์ `x` และใช้ฟังก์ชัน `sqrt` เพื่อคำนวณรากที่สองของ `x` นั่นเอง
ตัวอย่างโค้ดที่ 2: การใช้งาน `sin`
-- ฟังก์ชันเพื่อคำนวณค่าไซน์ของมุม (เป็นเรเดียน)
sinExample :: Floating a => a -> a
sinExample x = sin x
-- การใช้งาน
main = do
print (sinExample pi) -- ค่าไซน์ของมุม 180 องศา (ในเรเดียน pi)
print (sinExample (pi / 2)) -- ค่าไซน์ของมุม 90 องศา (ได้ 1)
ให้สังเกตว่า Haskell คำนวณไซน์ของมุมในหน่วยเรเดียน ดังนั้น `pi` จึงเป็นค่าพิเศษที่แทนมุม 180 องศา
ตัวอย่างโค้ดที่ 3: การใช้งาน `cos` และ `tan`
-- ฟังก์ชันเพื่อคำนวณค่าโคไซน์และแทนเจนต์
cosTanExample :: Floating a => a -> (a, a)
cosTanExample x = (cos x, tan x)
-- การใช้งาน
main = do
print (cosTanExample (pi / 3)) -- โคไซน์และแทนเจนต์ของมุม 60 องศา
print (cosTanExample (pi / 4)) -- โคไซน์และแทนเจนต์ของมุม 45 องศา
ในตัวอย่างนี้ `cosTanExample` จะคืนค่า tuple ที่มีค่าโคไซน์และแทนเจนต์ของมุม `x` ที่ระบุ
Math functions ที่เราได้เรียนรู้มานี้ประยุกต์ใช้ได้อย่างมากมายในโลกจริง เช่น การออกแบบสถาปัตยกรรมที่ต้องการคำนวณรูปทรงเรขาคณิต หรือการพัฒนาเกมที่ต้องการคำนวณทิศทางของการเคลื่อนที่ในแนวสามมิติ นอกจากนี้ยังรวมไปถึงการวิเคราะห์ข้อมูลที่ต้องใช้สถิติและความน่าจะเป็น
สิ่งสำคัญคือภาษา Haskell ให้เราเข้าถึงพวกฟังก์ชันคณิตศาสตร์พื้นฐานในแบบที่สุดโต่งแห่งการเขียนโปรแกรมฟังก์ชันนามธรรม — ที่ทำงานได้แม่นยำและง่ายดาย
ตอนท้ายนี้ เราหวังว่าทุกท่านจะเริ่มเห็นความงามของการใช้งาน math functions ในภาษา Haskell และหากท่านใดสนใจที่จะเรียนรู้การเขียนโปรแกรมเพื่อพัฒนาทักษะการคิดวิเคราะห์และการแก้ปัญหาในโลกจริง เราขอชวนแวะมาที่ EPT หรือ Expert-Programming-Tutor ที่จะช่วยให้ท่านได้พบกับหลักสูตรการเขียนโปรแกรมแบบเจาะลึกที่จะเปลี่ยนทุกความซับซ้อนให้กลายเป็นเรื่องง่ายที่เข้าใจได้ในพริบตา — เพราะการเขียนโปรแกรมไม่ใช่แค่เรื่องของโค้ด แต่เป็นเรื่องของการนำความนึกคิดมาประยุกต์ใช้อย่างไม่มีขีดจำกัดครับ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM