Τιμές αλήθειας
Ισότητα και άλλες συγκρίσεις
Χρησιμοποιούνται οι συνηθισμένοι συγκριτικοί τελεστές (για την ισότητα ο τελεστής ==, για την ανισότητα ο τελεστής /=)
Prelude> 2 + 3 == 5
True
Λογικές τιμές
Τιμές αλήθειας ή boolean τιμές: True και False
Εισαγωγή στους τύπους
Prelude> 2 == True
<interactive>:1:1: error:
* No instance for (Num Bool) arising from the literal `2'
* In the first argument of `(==)', namely `2'
In the expression: 2 == True
In an equation for `it': it = 2 == True
Οι τιμές έχουν τύπους που καθορίζουν το τι επιτρέπεται να γίνει σε αυτές.
Ένθετοι τελεστές
Το == είναι μια συνάρτηση που λαμβάνει δύο ορίσματα και μπορεί να γραφεί είτε σε ένθετη μορφή είτε σε προθεματική μορφή (τότε όμως πρέπει να γραφεί σε παρένθεση).
Prelude> 4 + 9 == 13
True
Prelude> (==) (4 + 9) 13
True
Λογικοί τελεστές
Οι λογικοί τελεστές είναι οι &&, || και not
Φρουροί (guards)
Υλοποίηση συνάρτησης απόλυτης τιμής με φρουρούς. Οι εσοχές πριν τα | είναι απαραίτητες για την ορθή λειτουργία του κώδικα. Μετά από κάθε | ακολουθεί μια έκφραση που αποτιμάται σε λογική τιμή (ένα κατηγόρημα) ή το otherwise που αποτιμάται πάντα σε True.
absolute x
| x < 0 = -x
| otherwise = x
Συνδυασμός where και Guards
Εύρεση πλήθους λύσεων δευτεροβάθμιας εξίσωσης
numOfRealSolutions a b c
| disc > 0 = 2
| disc == 0 = 1
| otherwise = 0
where
disc = b^2 - 4*a*c