Los conjuntos permiten almacenar elementos en los que no importa el orden ni las repeticiones.
En esta tema se presentan ejemplos de las funciones de la librería de conjuntos Data.Set 0.6.2.1.
En los ejemplos se supone que se ha importado la siguiente librería
ghci> import Data.Set as S
Data.Set
exporta funciones que colisionan con las de Prelude
y Data.List
, se suele importar de forma cualificada.(Set a)
es el tipo de los conjuntos con elementos de tipo a. Por ejemplo,ghci> c1 = fromList [3,2,5,3]
ghci> :type c1
c1 :: (Ord a, Num a) => Set a
ghci> c1
fromList [2,3,5]
ghci> c2 = fromList [2,5,2,3]
ghci> c1 == c2
True
empty
es el conjunto vacío. Por ejemplo,(insert x c)
es el conjunto obtenido insertando el elemento x
en el conjunto c
. Por ejemplo,ghci> insert 7 (fromList [3,2,5])
fromList [2,3,5,7]
ghci> insert 2 (fromList [3,2,5])
fromList [2,3,5]
(delete x c)
es el conjunto obtenido eliminando el elemento x
del conjunto c
. Por ejemplo,ghci> delete 3 (fromList [3,2,5,3,4])
fromList [2,4,5]
ghci> delete 7 (fromList [3,2,5,3,4])
fromList [2,3,4,5]
(member x c)
se verifica si x
es un elemento del conjunto c
. Por ejemplo,(null c)
se verifica si c
es el conjunto vacío. Por ejemplo,(fromList xs)
es el conjunto cuyos elementos son los de la lista xs
. Por ejemplo,(elems c)
es la lista de los elementos del conjunto c
ordenados crecientemente. Por ejemplo,(toList c)
es la lista de los elementos del conjunto c
ordenados crecientemente. Por ejemplo,(union cs c2)
es la unión de los conjuntos c1
y c2
. Por ejemplo,(intersection cs c2)
es la intersecciṕn de los conjuntos c1
y c2
. Por ejemplo,(difference c1 c2)
es la diferencia de los conjuntos c1
y c2
. Por ejemplo,(c1 \\ c2)
es la diferencia de los conjuntos c1
y c2
. Por ejemplo,(size c)
es el número de elementos del conjunto c
. Por ejemplo,(isSubsetOf c1 c2)
se verifica si c1
es un subconjunto de c2
. Por ejemplo,ghci> isSubsetOf (fromList [3,5]) (fromList [3,2,5])
True
ghci> isSubsetOf (fromList [3,5,2]) (fromList [3,2,5])
True
ghci> isProperSubsetOf (fromList [3,7]) (fromList [3,2,5])
False
(isProperSubsetOf c1 c2)
se verifica si c1
es un subconjunto propio de c2
. Por ejemplo,ghci> isProperSubsetOf (fromList [3,5]) (fromList [3,2,5])
True
ghci> isProperSubsetOf (fromList [3,5,2]) (fromList [3,2,5])
False
ghci> isProperSubsetOf (fromList [3,7]) (fromList [3,2,5])
False
(c1 == c2)
se verifica si los conjuntos c1
y c2
son iguales. Por ejemplo,ghci> fromList [3,2,5] == fromList [5,2,3,2]
True
ghci> fromList [3,2,5] == fromList [5,1,3,2]
False
(map f c)
es el conjunto obtenido aplicando a cada elemento de c
la función f
. Por ejemplo,(filter p c)
es el conjunto de los elementos de c
que cumplen p
. Por ejemplo,En Manual de la librería de conjuntos Data.Set se describen las funciones de la librería mediante ejemplos.
En Data.Set se describen las funciones de la librería junto con sus órdenes de complejidad.