Logikai értékek

A két logikai érték

Logikai értékek:

Test>
True :: Bool
Test>
False :: Bool

Egyenlőségvizsgálat és összehasonlítás

Test>
(==) :: Eq a => a -> a -> Bool
Test>
(<) :: Ord a => a -> a -> Bool

Eq a és Ord a jelentése: a kicserélhető majdnem minden típusra, de nem cserélhető ki például függvénytípusra.

Ezek azonos erősségű operátorok és gyengébbek az eddigi operátoroknál.


Ezek az operátorok se jobbra, se balra nem kötő operátorok.

Azonos kötési erősségű, nem kötő operátorok egymás mellett szerepeltetése hibás. Például a == b == c hibás, és a < b > c is hibás.

Feladatok

Találjuk ki a végeredményt:

Test>
Test>
Test>
Test>

Feladat

Írjunk be egy olyan kifejezést, amely pontosan akkor True ha a 23 nem osztja a 532253373-at!

Test>

Logikai műveletek

Test>
False :: Bool
Test>
True :: Bool
Test>
False :: Bool

A logikai ÉS erősebben köt a logikai VAGY-nál, és mind a kettő gyengébb ez eddigi operátoroknál.

Test>
(&&) :: Bool -> Bool -> Bool

Feladat

Írjunk le egy olyan kifejezést, amelynek a végeredményéből világossá válik, hogy a (&&) erősebben köt a (||)-nál!

Test>

Kötési erősség összefoglalás

Táblázat:

függvények (sqrt, div, mod, stb. ) ((.).)
^, ^^, ** (.(.))
*, /, `div`, `mod` ((.).)
+, - (kivonás és negálás) ((.).)
==, /=, <, <=, >, >= -
&& (.(.))
|| (.(.))

Feladatok

Írjuk ki a rejtett zárójeleket!

Test>

Távolítsunk el minél több zárójelpárt!

Test>

Zárójelezzük a következő kifejezést!

Test>