Elementos maximales
Definir la función
maximales :: Eq a => (a -> a -> Bool) -> [a] -> [a]
tal que (maximales r xs) es la lista de los elementos de xs para los que no hay ningún otro elemento de xs mayor según la relación r. Por ejemplo,
maximales (>) [2,3,4,6] == [6] maximales (<) [2,3,4,6] == [2] maximales (\x y -> mod x y == 0) [2,3,4,6] == [4,6] maximales (\x y -> mod y x == 0) [2,3,4,6] == [2,3]
Soluciones
maximales :: Eq a => (a -> a -> Bool) -> [a] -> [a] maximales r xs = [x | x <- xs, null [y | y <- xs, y /= x, r y x]]