Create a custom set type.
Sometimes it is necessary to define a custom data structure of some type, like a set. In this exercise you will define your own set. How it works internally doesn't matter, as long as it behaves like a set of unique elements.
To complete this exercise, you need to create the data type CustomSet
,
with Eq
and Show
instances, and implement the following functions:
delete
difference
empty
fromList
insert
intersection
isDisjointFrom
isSubsetOf
member
null
size
toList
union
You will find a dummy data declaration and type signatures already in place, but it is up to you to define the functions and create a meaningful data type, newtype or type synonym.
If you're interested in writing an efficient implementation but don't quite know where to start, the best primer I know of is Chris Okasaki's "Purely Functional Data Structures", which you can read a version of here: https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
Sign up to Exercism to learn and master Haskell with 107 exercises, and real human mentoring, all for free.