Custom Set

Custom Set

Medium

Instructions

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

Edit via GitHub The link opens in a new window or tab
Haskell Exercism

Ready to start Custom Set?

Sign up to Exercism to learn and master Haskell with 105 exercises, and real human mentoring, all for free.