Haskell

From WikiName
Jump to: navigation, search

บันทึกช่วยจำเกี่ยวกับการเขียนโปรแกรมภาษา Haskell[edit]

สำหรับหน้านี้ผมขอใช้เป็นพื้นที่สำหรับการบันทึกสิ่งต่างๆที่น่าสนใจเกี่ยวกับการเขียนโปรแกรมด้วยภาษา Haskell ซึ่งถือว่าเป็นตัวพ่อแห่งภาษาที่ใช้ในการเขียนโปรแกรมที่เป็นแบบ Pure Functional ซึ่งมีวิธีการเขียนโปรแกรมที่แตกต่างไปจากการเขียนโปรแกรมภาษายอดนิยม เช่น Java หรือ C# หรืออื่นๆ

เครื่องมือที่ใช้[edit]

  1. Ubuntu
  2. Haskell Platform
    $ sudo apt-get install haskell-platform
  3. 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 ทำได้

ศึกษาเพิ่มเติม[edit]