DA.Set¶
Note: This is only supported in Daml-LF 1.11 or later.
This module exports the generic set type Set k
and associated
functions. This module should be imported qualified, for example:
import DA.Set (Set)
import DA.Set qualified as S
This will give access to the Set
type, and the various operations
as S.lookup
, S.insert
, S.fromList
, etc.
Set k
internally uses the built-in order for the type k
.
This means that keys that contain functions are not comparable
and will result in runtime errors. To prevent this, the Ord k
instance is required for most set operations. It is recommended to
only use Set k
for key types that have an Ord k
instance
that is derived automatically using deriving
:
data K = ...
deriving (Eq, Ord)
This includes all built-in types that aren’t function types, such as
Int
, Text
, Bool
, (a, b)
assuming a
and b
have default
Ord
instances, Optional t
and [t]
assuming t
has a
default Ord
instance, Map k v
assuming k
and v
have
default Ord
instances, and Set k
assuming k
has a
default Ord
instance.
Data Types¶
data Set k
Functions¶
- notMember
-
Is the element not in the set?
notMember k s
is equivalent tonot (member k s)
.
- insert
: Ord k => k -> Set k -> Set k
Insert an element in a set. If the set already contains the element, this returns the set unchanged.
- intersection
: Ord k => Set k -> Set k -> Set k
The intersection of two sets.
- difference
: Ord k => Set k -> Set k -> Set k
difference x y
returns the set consisting of all elements inx
that are not iny
.> > > fromList [1, 2, 3] difference fromList [1, 4] > > > fromList [2, 3]
- isSubsetOf
: Ord k => Set k -> Set k -> Bool
isSubsetOf a b
returns true ifa
is a subset ofb
, that is, if every element ofa
is inb
.
- isProperSubsetOf
: Ord k => Set k -> Set k -> Bool
isProperSubsetOf a b
returns true ifa
is a proper subset ofb
. That is, ifa
is a subset ofb
but not equal tob
.