Haskell - Funcions amb llistes P25054


Statement
 

pdf   zip

thehtml

En aquest problema heu d’implementar una sèrie de funcions sobre llistes en Haskell.

  1. Feu una funció myLength :: [Int] -> Int que, donada una llista d’enters, calculi la seva llargada.
  2. Feu una funció myMaximum :: [Int] -> Int que, donada una llista d’enters no buida, calculi el seu màxim.
  3. Feu una funció average :: [Int] -> Float que, donada una llista d’enters no buida, calculi la seva mitjana.
  4. Feu una funció buildPalindrome :: [Int] -> [Int] que, donada una llista, retorni el palíndrom que comença amb la llista invertida.
  5. Feu una funció remove :: [Int] -> [Int] -> [Int] que donada una llista d’enters x i una llista d’enters y, retorna la llista x havent eliminat totes les ocurrències dels elements en y.
  6. Feu una funció flatten :: [[Int]] -> [Int] que aplana una llista de llistes produint una llista d’elements.
  7. 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.
  8. Feu una funció primeDivisors :: Int -> [Int] que retorni la llista de divisors primers d’un enter estrictament positiu.

Puntuació

Cada funció puntua 12 punts i l’exemple 4.

Public test cases
  • 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]
    
  • Information
    Author
    Albert Rubio / Jordi Petit
    Language
    Catalan
    Other languages
    English
    Official solutions
    Haskell
    User solutions
    Haskell