True กับ False เท่านั้น (ไม่สามารถใช้ 0 หรือค่าว่างแบบอื่นๆ แทน False ได้)ฟังก์ชันสำหรับตรวจสอบความเท่ากัน ใช้
== (เท่ากัน) กับ /= (ไม่เท่ากัน) ส่วนฟังก์ชันสำหรับการตรวจสอบลำดับก็ได้แก่ <= (น้อยกว่าเท่ากับ), < (น้อยกว่า), > (มากกว่า), >= (มากกว่าเท่ากับ)logic สำหรับเชื่อมค่าความจริงเหล่านี้ได้แก่
&& (และ), || (หรือ), not (นิเสธ)สาเหตุที่นิเสธไม่ใช้สัญลักษณ์เช่นเดียวกับการดำเนินการอื่นๆ เพราะฟังก์ชันใน Haskell จะเขียนแทนด้วยสัญลักษณ์ได้ มันต้องเป็นฟังก์ชัน 2 ตัวแปรและทำหน้าที่เป็น infix เท่านั้นครับ
ด้วยความที่เป็นภาษา functional ทุกๆ expression จะต้องคืนค่ากลับมาเสมอ ทำให้การใช้ if ใน Haskell ต้องมีส่วน else ตามท้ายตลอด
ถ้าต้องการใช้แค่ if อย่างเดียว และบังคับโปรแกรมให้หยุดทำงานเมื่อเจอเงื่อนไขที่ผิด ก็สามารถใช้ฟังก์ชัน
error แบบนี้แทนได้ตัวอย่างข้างต้นนี้สามารถแยกเขียนหลายบรรทัดให้อ่านง่ายขึ้นได้ แต่เนื่องจาก
ghci ไม่สะดวกเมื่อต้องเขียนหลายบรรทัด จะย้ายไปเขียนเป็นฟังก์ชันในไฟล์แทน ดังนี้สิ่งที่ต่างไปจากการประกาศฟังก์ชันบน
ghci คือ ไม่ต้องมี let นำหน้า เนื่องจากฟังก์ชันนี้ไม่ได้ถูกประกาศใน main ครับเซฟเป็นไฟล์
func.hs แล้วกลับมาที่ ghci เราจะเรียกฟังก์ชันที่เขียนเก็บด้วยคำสั่ง :l หรือ :load ดังนี้
No comments:
Post a Comment