En aquest problema heu d’implementar una sèrie de funcions sobre llistes en Haskell.
Feu una funció myLength :: [Int] -> Int que,
donada una llista d’enters, calculi la seva llargada.
Feu una funció myMaximum :: [Int] -> Int que,
donada una llista d’enters no buida, calculi el seu màxim.
Feu una funció average :: [Int] -> Float que,
donada una llista d’enters no buida, calculi la seva mitjana.
Feu una funció buildPalindrome :: [Int] -> [Int]
que, donada una llista, retorni el palíndrom que comença amb la llista
invertida.
Feu una funció
remove :: [Int] -> [Int] -> [Int] que donada una
llista d’enters
i una llista d’enters
,
retorna la llista
havent eliminat totes les ocurrències dels elements en
.
Feu una funció flatten :: [[Int]] -> [Int] que
aplana una llista de llistes produint una llista d’elements.
Feu una funció
oddsNevens :: [Int] -> ([Int],[Int]) que, donada una
llista d’enters, retorni dues llistes, una que conté els parells i una
que conté els senars, en el mateix ordre relatiu que a
l’original.
Feu una funció primeDivisors :: Int -> [Int] que
retorni la llista de divisors primers d’un enter estrictament
positiu.
Cada funció puntua 12 punts i l’exemple 4.
Input
myMaximum [4,3,1,5,4,5,2] average [1,2,3] buildPalindrome [2,4,6] flatten [[2,6],[8,1,4],[],[1]] remove [1,4,5,3,4,5,1,2,7,4,2] [2,4] myLength [1,3..10] oddsNevens [1,4,5,3,4,5,1,2,7,4,2] primeDivisors 255
Output
5 2.0 [6,4,2,2,4,6] [2,6,8,1,4,1] [1,5,3,5,1,7] 5 ([1,5,3,5,1,7],[4,4,2,4,2]) [3,5,17]