Aquest problema explora la definició de funcions d’ordre superior sobre llistes. Implementeu les funcions següents mimetitzant les funcions originals de Haskell però sense usar la funció original (és a dir, no podeu usar foldl per implementar myFoldl però si per implementar myAll). A més, només podeu utilitzar recursivitat per definir myFoldl, myFoldr, myIterate, myUntil i myZip.
myFoldl :: (a -> b -> a) -> a -> [b] -> a
myFoldr :: (a -> b -> b) -> b -> [a] -> b
myIterate :: (a -> a) -> a -> [a]
myUntil :: (a -> Bool) -> (a -> a) -> a -> a
myMap :: (a -> b) -> [a] -> [b]
myFilter :: (a -> Bool) -> [a] -> [a]
myAll :: (a -> Bool) -> [a] -> Bool
myAny :: (a -> Bool) -> [a] -> Bool
myZip :: [a] -> [b] -> [(a, b)]
myZipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
Cada funció puntua 10 punts.
Autoria: Albert Rubio / Jordi Petit
Generació: 2026-02-03T17:01:18.026Z
© Jutge.org, 2006–2026.
https://jutge.org