-- implements recusrive way to check if two ints have the same value
istGleich :: Int -> Int -> Bool
-- both are zero, so they are equal
istGleich 0 0 = True
-- one is zero while the other one isnt... not equal
istGleich x 0 = False
istGleich 0 x = False
-- check if the two below are equal
istGleich (x + 1) (y + 1) = istGleich x y
-- prints max(x, y)
maxZahl :: Int -> Int -> Int
-- second is zero, first is greater
-- also matches if both are zero
maxZahl x 0 = x
-- first is zero, second is greater
maxZahl 0 x = x
-- check which one of value-1 is greater (increment for output)
maxZahl (x + 1) (y + 1) = 1 + maxZahl x y
-- checks if three integers are not equal
dreiVerschieden :: Int -> Int -> Int -> Bool
-- they are equal if a is b, b is c and a is c
dreiVerschieden x y z = not ( istGleich x y
|| istGleich y z
|| istGleich x z)