List ใน Haskell โดยพื้นฐานก็จะมีหน้าตาคล้ายภาษาขั้นสูงทั่วไป คือใช้วงเล็บปีกแข็งครอบสมาชิกไว้เช่นนี้อย่างไรก็ตาม สมาชิกใน
List ทุกตัวต้องเป็น type เดียวกันเท่านั้น เช่นเดียวกับ String ที่มีสมาชิกทุกตัวเป็น Char นั่นเองการเพิ่มสมาชิกให้
List นอกจากจะทำผ่าน ++ ได้แล้ว ยังสามารถทำผ่าน : ได้อีกด้วย โดยฝั่งซ้ายของ : คือสมาชิกที่จะเพิ่ม และฝั่งขวาคือ List ตั้งต้น ผลลัพท์จะเป็น List ตั้งต้นที่มีสามาชิกใหม่ด้านหัวList ใน Haskell นั้น แท้จริงแล้วถูกออกแบบมาเป็น stack โดยด้านที่รับ-ส่งสมาชิกคือด้านหัว (ฝั่งซ้ายมือ) ดังนั้นเรามักจะเพิ่มสมาชิกตัวใหม่ๆ โดย : มากกว่าที่จะใช้ ++ เพิ่มสมาชิกต่อหลังครับ (มีผลต่อความเร็ว)เมื่อต้องการดึงหัว
List ออกมาใช้ ทำได้โดยฟังก์ชัน head หรือเก็บสมาชิกทุกตัวยกเว้นหัวก็ใช้ tailแม้เราจะไม่ค่อยยุ่งกับสมาชิกตัวท้ายสุดซักเท่าไหร่ แต่ถ้าต้องการสมาชิกตัวสุดท้าย หรือต้องการสมาชิกทุกตัวยกเว้นท้ายสุด ก็สามาถทำได้ผ่าน
last, init ตามลำดับข้อควรระวังคือการดำเนินการพวกนี้ ไม่สามารถทำได้กับ
List ที่ไม่มีสมาชิกเลย ซึ่งเราสามารถตรวจว่ามีสมาชิกหรือไม่ได้โดยคำสั่ง nullส่วนการดึงสมาชิก ณ ตำแหน่งใดๆ ออกมา ทำได้ผ่านเครื่องหมาย
!! เช่นนี้ครับแน่นอนว่ามันจะให้ error ถ้าส่วน index นั้นใหญ่เกินกว่า
List เราสามารถหาขนาดได้โดยฟังก์ชัน lengthส่วนถ้าจะตรวจสอบว่ามีสมาชิกที่เราอยากรู้อยู่ใน
List นั้นหรือเปล่า ก็ทำได้ผ่านฟังก์ชัน elem
No comments:
Post a Comment