View on GitHub

dituoi_agp

Αρχές Γλωσσών Προγραμματισμού

Τιμές αλήθειας

Ισότητα και άλλες συγκρίσεις

Χρησιμοποιούνται οι συνηθισμένοι συγκριτικοί τελεστές (για την ισότητα ο τελεστής ==, για την ανισότητα ο τελεστής /=)

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

absolute.hs

Συνδυασμός where και Guards

Εύρεση πλήθους λύσεων δευτεροβάθμιας εξίσωσης

numOfRealSolutions a b c
    | disc > 0  = 2
    | disc == 0 = 1
    | otherwise = 0
        where
        disc = b^2 - 4*a*c