Haskell — Funcions d’ordre superior

Aquest problema explora la definició de funcions d’ordre superior sobre
llistes.

1.  Feu una funció countIf :: (Int -> Bool) -> [Int] -> Int que, donat
    un predicat sobre els enters i una llista d’enters, retorna el
    nombre d’elements de la llista que satisfan el predicat.

    Nota: Aquesta funció d’ordre superior existeix en llenguatges de
    tractament de fulls de càlcul com ara EXCEL.

2.  Feu una funció pam :: [Int] -> [Int -> Int] -> [[Int]] que, donada
    una llista d’enters i una llista de funcions d’enters a enters,
    retorna la llista de llistes resultant d’aplicar cada una de les
    funcions de la segona llista als elements de la primera llista.

3.  Feu una funció pam2 :: [Int] -> [Int -> Int] -> [[Int]] que, donada
    una llista d’enters i una llista de funcions d’enters a enters,
    retorna la llista de llistes on cada llista és el resultat d’aplicar
    successivament les funcions de la segona llista a cada element de la
    primera llista.

    Nota: Qualsevol semblança amb La parte contratante de la primera
    parte será considerada como la parte contratante de la primera parte
    és pura casualitat.

4.  Feu una funció
    filterFoldl :: (Int -> Bool) -> (Int -> Int -> Int) -> Int -> [Int] -> Int
    que fa el plegat dels elements que satisfan la propietat donada.

5.  Feu una funció
    insert :: (Int -> Int -> Bool) -> [Int] -> Int -> [Int] que donada
    una relació entre enters, una llista i un element, ens retorna la
    llista amb l’element inserit segons la relació.

    Utilitzant la funció insert, feu una funció
    insertionSort :: (Int -> Int -> Bool) -> [Int] -> [Int] que ordeni
    la llista per inserció segons la relació donada.

Puntuació

Cada apartat puntua 20 punts.

Informació del problema

Autoria: Albert Rubio / Jordi Petit

Generació: 2026-02-03T17:01:33.685Z

© Jutge.org, 2006–2026.
https://jutge.org
