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

0 comments: