การเขียนโปรแกรมในภาษา Haskell นับเป็นทักษะที่น่าสนใจอย่างมากสำหรับนักศึกษา หรือผู้ที่เริ่มต้นศึกษาโปรแกรมมิ่ง ภาษา Haskell ที่เป็นภาษาฟังก์ชันนัลล้วนๆ (purely functional language) มีความแตกต่างจากภาษาโปรแกรมมิ่งแบบคำสั่งอย่าง C หรือ Java ในหลายๆ ด้าน หนึ่งในความแตกต่างนั้นก็คือการจัดการกับข้อมูลประเภท array วันนี้เราจะมาพูดถึงการใช้ array ใน Haskell อย่างง่ายๆ พร้อมกับตัวอย่างการใช้งานจริง 3 ตัวอย่างที่ช่วยให้คุณเห็นภาพการใช้งาน และเราจะยกตัวอย่าง usecase ที่เกิดขึ้นได้ในโลกแห่งความจริง
Array ในภาษา Haskell มักถูกมองว่ามีความซับซ้อน แต่ว่าเมื่อเข้าใจลักษณะที่เป็นภาษาฟังก์ชันนัล การจัดการกับ array ก็จะสะดวกมากขึ้น สำหรับ Haskell, array ถูกจัดการอย่างแม่นยำโดยใช้ index เพื่อค้นหาข้อมูลของแต่ละสมาชิกใน array
import Data.Array
sampleArray :: Array Int String
sampleArray = array (1, 3) [(1, "Haskell"), (2, "is"), (3, "Great")]
main :: IO ()
main = do
putStrLn $ sampleArray ! 1
putStrLn $ sampleArray ! 2
putStrLn $ sampleArray ! 3
ในตัวอย่างนี้จะเห็นวิธีการสร้าง array ใน Haskell โดยใช้ฟังก์ชัน `array` ซึ่งกำหนดขอบเขตของ index และค่าที่โยงกับมัน การเข้าถึงข้อมูลใน array นั้นใช้เครื่องหมาย `!` เพื่อระบุ index
import Data.Array
sampleArray :: Array Int String
sampleArray = array (1, 3) [(1, "Haskell"), (2, "is"), (3, "flexible")]
updateArray :: Array Int String
updateArray = sampleArray // [(3, "amazing")]
main :: IO ()
main = do
putStrLn $ updateArray ! 3
ในตัวอย่างที่สองนี้จะเห็นว่า array เดิมสามารถถูกอัปเดตโดยใช้ `//` และตามด้วย list ของ tuple ที่มี index และค่าใหม่ที่ต้องการเปลี่ยนแปลง
import Data.Array
sampleArray :: Array Int String
sampleArray = array (1, 3) [(1, "Haskell"), (2, "makes"), (3, "sense")]
mappedArray :: Array Int String
mappedArray = fmap (++ "!") sampleArray
main :: IO ()
main = mapM_ putStrLn $ elems mappedArray
จากตัวอย่างนี้เราใช้ `fmap` ในการแมปฟังก์ชันที่เพิ่มเครื่องหมายตกใจที่ท้ายของแต่ละ string ใน array และใช้ `elems` เพื่อดึงทุก element ใน array เพื่อพิมพ์มันออกมา
Array ใน Haskell สามารถใช้ในการจัดการข้อมูลที่มีโครงสร้างซ้ำๆ ได้เป็นอย่างดี เช่น การเขียนโปรแกรมที่ควบคุม traffic ของเครือข่าย หรือ ระบบการจองตั๋วภายในฐานข้อมูลที่มีโครงสร้างเป็น matrix
ที่ EPT เรามุ่งมั่นส่งเสริมการเรียนรู้ด้านการเขียนโปรแกรมด้วยภาษา Haskell และภาษาอื่นๆ มาร่วมเรียนรู้ และสร้างสิ่งใหม่ๆ กับเรา ไม่ว่าคุณจะเป็นผู้เริ่มต้น หรือนักพัฒนาซอฟต์แวร์ที่ต้องการขยายทักษะโปรแกรมมิ่งของคุณ ที่ EPT เราพร้อมเป็นส่วนหนึ่งในการเติมเต็มเส้นทางการเรียนรู้ของคุณ!
---
การเรียนรู้ Haskell เปรียบเสมือนการลงทุนในการเข้าใจพื้นฐานการเขียนโปรแกรมที่มั่นคง ซึ่งจะปูทางไปสู่การเป็นนักพัฒนาซอฟต์แวร์ที่สามารถแก้ไขปัญหาได้อย่างมีสไตล์และสร้างสรรค์ เริ่มต้นตอนนี้ที่ EPT!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: haskell array functional_programming indexing updating_array mapping_function real-world_usecase learning_programming ept software_development
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM