创建一个自定义集合类型。
有时需要定义某种自定义数据结构,比如集合。 在这个练习中,你将定义自己的集合。 它的内部实现方式并不重要,只要它的行为像一个由唯一元素组成的集合就行。
要完成这道练习,你需要创建数据类型 CustomSet,为它实现 Eq 和 Show 实例,并实现以下函数:
deletedifferenceemptyfromListinsertintersectionisDisjointFromisSubsetOfmembernullsizetoListunion代码里已经给出了一个占位的数据声明和各个类型签名,但定义这些函数,并创建一个有意义的数据类型、newtype 或类型同义词,都得由你来做。
如果你想写出高效的实现,却不太清楚从哪里开始,我所知道的最好的入门读物是 Chris Okasaki 的《Purely Functional Data Structures》,你可以在下面这个地址读到它的一个版本: https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf