Cria um tipo de conjunto personalizado.
Por vezes, é necessário definir uma estrutura de dados personalizada de algum tipo, como um conjunto. Neste exercício, vais definir o teu próprio conjunto. A forma como funciona internamente não importa, desde que se comporte como um conjunto de elementos únicos.
Para completar este exercício, precisas de criar o tipo de dados CustomSet, com instâncias de Eq e Show, e implementar as seguintes funções:
deletedifferenceemptyfromListinsertintersectionisDisjointFromisSubsetOfmembernullsizetoListunionVais encontrar já no sítio uma declaração de dados de exemplo e as assinaturas de tipo, mas cabe-te a ti definir as funções e criar um tipo de dados, um newtype ou um sinónimo de tipo com significado.
Se estiveres interessado em escrever uma implementação eficiente mas não souberes bem por onde começar, a melhor introdução que conheço é "Purely Functional Data Structures", de Chris Okasaki, cuja versão podes ler aqui: https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.