Types

Build-in Type

Int, String คือ Type ที่มาพร้อมกับ Haskell

Custom Type

เราสามารถสร้าง type ใหม่จาก String, Int ด้วยการประกาศ data

data Person = Person { name:: String, age:: Int } 
deriving Show

สร้าง Instance จาก Person

person = Person "wk" 20

สามารถ deconstruct หรือการดึงค่าใน type ออกมาใช้งาน โดยใช้ pattern matching

isTeen :: Person -> Bool
isTeen (Person _ age) = age > 10 && age < 20

หรือใช้ชื่อฟิลด์

personName = name person

Function Type

ประกาศโดยใช้ keyword type และระบุ signature ของฟังกชั่น

type PersonPredicate = Person -> Bool
isNameWk :: PersonPredicate
isNameWk person = name person == "wk"

Kinds

ใช้ :k เพื่อเช็ค kind

ghci> :k Int
Int :: *
ghci> :k Person
Int :: *
ghci> :k PersonPredicate
Int :: *
ghci> :k (->)
(->) :: * -> * -> *
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.