First please write down type signatures like
maximum :: Ord a => [a] -> a
it makes thinking about functions way more easily.
so in this case we have a function that takes a list of comparable things (Ord a => [a]) and gives us one - the maximum of them.
maximum :: Ord a => [a] -> a
maximum [] = undefined
maximum [x] = x
maximum (x1 : x2 : xs)
| x1 > x2 = maximum (x1 : xs)
| otherwise = maximum (x2 : xs)
Secondly name things so that others are not confused - i don't know what a maradek is or could be, in haskell often "list of x" is denoted by xs.
now let's test our maximum-function:
> ghci maximum.hs
>>> maximum []
*** Exception: Prelude.maximum: empty list
>>> maximum [1..10]
10
>>> maximum [10,9..1]
10
>>> maximum "alpha,beta,gamma"
't'
>>> maximum [1.0,1.1..10.0]
10.000000000000053
works all as expected: error on emptylist, maximum on integers and characters as well only the last one is unexpected as it is one of the oddities of working with floating point numbers and rounding errors.
Edit
After the comment I misread the op's question (I'm verry sorry for that!).
maximum2 :: Ord a => [a] -> (a,a)
maximum2 [] = undefined
maximum2 [x] = undefined
maximum2 [x1, x2] = (x1, x2)
maximum2 (x1 : x2 : x3 : xs)
| x2 > x1 = maximum2 (x2 : x1 : x3 : xs)
| x3 > x1 = maximum2 (x3 : x1 : xs)
| x3 > x2 = maximum2 (x1 : x3 : xs)
| otherwise = maximum2 (x1 : x2 : xs)
so here is the expected solution I hope.
> ghci maximum.hs
>>> maximum []
*** Exception: Prelude.maximum: empty list
>>> maximum2 [1..10]
(10,9)
>>> maximum2 [10,9..1]
(10,9)
>>> maximum2 [9,19,10,23]
(23,19)
>>> maximum "alpha,beta,gamma"
('t','p')
>>> maximum [1.0,1.1..10.0]
(10.000000000000053,9.900000000000052)
>>> maximum2 (10:[1..10])
(10,10)
I don't know if the last result is as expected or if there should be (10,9).