Haskell
Contents
บันทึกช่วยจำเกี่ยวกับการเขียนโปรแกรมภาษา Haskell[edit]
สำหรับหน้านี้ผมขอใช้เป็นพื้นที่สำหรับการบันทึกสิ่งต่างๆที่น่าสนใจเกี่ยวกับการเขียนโปรแกรมด้วยภาษา Haskell ซึ่งถือว่าเป็นตัวพ่อแห่งภาษาที่ใช้ในการเขียนโปรแกรมที่เป็นแบบ Pure Functional ซึ่งมีวิธีการเขียนโปรแกรมที่แตกต่างไปจากการเขียนโปรแกรมภาษายอดนิยม เช่น Java หรือ C# หรืออื่นๆ
เครื่องมือที่ใช้[edit]
- Ubuntu
- Haskell Platform
$ sudo apt-get install haskell-platform
- VS Code with Haskell Syntax Highlighting extension
แกนสำคัญเกี่ยวกับ Haskell[edit]
- Pure Functional (Immutable data)
- Lazy Evaluation
- Type Specific
List Comprehensive[edit]
เราสามารถสร้าง List ใน Haskell ได้ด้วยวิธีการดังนี้
[<ค่าที่คืนกลับมา> | ค่าของตัวแปรแต่ละตัว, เงื่อนไข]
เช่น หากตัองการสร้าง list ของเลขที่หารด้วย 3 ลงตัวจากเลข 1 ถึง 50, จะสามารถสร้างได้ด้วยคำสั่งดังนี้
[x | x<-[1..50], mod x 3==0]
ซึ่งจะได้ผลลัพธ์ ดังนี้
[3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48]
หรือเราสามารถใช้ตัวแปรมากกว่า 1 ตัวได้ เช่น
[x*y | x<-[2,5,10], y<-[8,10,11], mod x 2==0]
จะได้ผลลัพธ์เป็น
[16,20,22,80,100,110]
Tuple[edit]
สิ่งสำคัญที่ทำให้ Tuple ต่างจาก List คือ
- Tuple สำหรับเก็บค่าตัวแปรที่มีชนิดแตกต่างกันได้ ส่วน List ต้องเก็บตัวแปรประเภทเดียวเท่านั้น
(1,'a',3.0)
- Tuple ไม่สามารถเพิ่มจำนวนสมาชิกได้ แต่ List ทำได้