Wednesday, November 29, 2006

[haskell] currying อีกที

พอรู้จัก currying ก็เลยเริ่มสนุก
ใน tutorial เขาบอกว่า

Haskell only supports one-argument functions.

ดังนั้นประโยค f x y
เวลา evaluate จะทำตามลำดับแบบนี้
((f x) y)

เครื่องหมาย + ก็เป็น function ด้วย
3 + 2 เวลา run ใน haskell
ก็ควรจะเริ่ม evaluate (3 +) ผลลัพท์ที่ได้คือ function
จากนั้นค่อย call function นั้น ด้วย parameter 2 อีกที

ลองดูสิว่าประโยค 3 + 2
เขียนแบบไหนได้อีกบ้าง

(3+) 2
(+3) 2
(+) 3 2

Note: ขออภัยแฟนๆ python ที่เอา "many way to do one thing" มาให้ดู

ส่วน statement แบบนี้

add(3,2)

เห็นแล้วอย่าสับสน
ใน haskell, (3,2) คือ datatype ชนิด tuple
ไม่ได้เป็น parameter syntax แบบที่เรารู้จัก

Related link from Roti

No comments: