Funcions sobre llistes habituals en Haskell
Aquesta lliçó recull les funcions sobre llistes més habituals en Haskell.
head, last
Signatura:
head, last :: [a] -> a
Descripció:
head xs
és el primer element de la llistaxs
.last xs
és el darrer element de la llistaxs
.Error si
xs
és buida.
Exemples:
λ> head [1 .. 4] 👉 1 λ> last [1 .. 4] 👉 4
tail, init
Signatura:
tail, init :: [a] -> [a]
Descripció:
tail xs
és la llistaxs
sense el seu primer element.init xs
és la llistaxs
sense el seu darrer element.Error si
xs
és buida.
Exemples:
λ> tail [1..4] 👉 [2, 3, 4] λ> init [1..4] 👉 [1, 2, 3]
reverse
Signatura:
reverse :: [a] -> [a]
Descripció:
reverse xs
és la llistaxs
del revés.Exemples:
λ> reverse [1..4] 👉 [4, 3, 2, 1]
length
Signatura:
length :: [a] -> Int
Descripció:
length xs
és el nombre d’elements a la llistaxs
.
null
Signatura:
null :: [a] -> Bool
Descripció:
null xs
indica si la llistaxs
és buida.
elem
Signatura:
elem :: (Eq a) => a -> [a] -> Bool
Descripció:
elem x xs
indica six
és a la llistaxs
.
(!!)
Signatura:
(!!) :: [a] -> Int -> a
Descripció:
xs !! i
és l’i
-èsim element de la llistaxs
(començant per zero).
maximum, minimum
Signatura:
maximum, minimum :: (Ord a) => [a] -> a
Descripció:
maximum xs
és l’element més gran de la llista (no buida!)xs
.minimum xs
és l’element més petit de la llista (no buida!)xs
.
and, or
Signatura:
and, or :: [Bool] -> Bool
Descripció:
and bs
és la conjunció de la llista de booleansbs
.or bs
és la disjunció de la llista de booleansbs
.
sum, product
Signatura:
sum, product :: [Int] -> Int
Descripció:
sum xs
és la suma de la llista d’entersxs
.prod xs
és el producte de la llista d’entersxs
.
Exemples:
fact n = prod [1 .. n] λ> fact 5 👉 120
take, drop
Signatura:
take, drop :: Int -> [a] -> [a]
Descripció:
take n xs
és el prefixe de llargadan
de la llista `xs.drop n xs
és el sufixe de la llistaxs
quan se li treuen elsn
primers elements.
Exemples:
λ> take 3 [1 .. 7] 👉 [1, 2, 3] λ> drop 3 [1 .. 7] 👉 [4, 5, 6, 7]
zip
Signatura:
zip :: [a] -> [b] -> [(a, b)]
Descripció:
zip xs ys
és la llista que combina, en ordre, cada parell d’elements dexs
iys
. Si en falten, es perden.Exemples:
λ> zip [1, 2, 3] ['a', 'b', 'c'] 👉 [(1, 'a'), (2, 'b'), (3, 'c')] λ> zip [1 .. 10] [1 .. 3] 👉 [(1, 1), (2, 2), (3, 3)]
repeat
Signatura:
repeat :: a -> [a]
Descripció:
repeat x
és la llista infinita on tots els elements sónx
.Exemples:
λ> repeat 3 👉 [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ...] λ> take 4 (repeat 3) 👉 [3, 3, 3, 3]
concat
Signatura:
concat :: [[a]] -> [a]
Descripció:
concat xs
és la llista qie concatena totes les llistes dexs
.Exemples:
λ> concat [[1, 2, 3], [], [3], [1, 2]] 👉 [1, 2, 3, 3, 1, 2]
Lliçons.jutge.org
Jordi Petit, Albert Rubio
Universitat Politècnica de Catalunya, 2023
Prohibit copiar. Tots els drets reservats.
No copy allowed. All rights reserved.