建立一個自訂的集合型別。
有時會需要定義某種類型的自訂資料結構,例如集合。 在這個練習中,你將定義自己的集合。 它內部如何運作並不重要,只要它的行為像一個由不重複元素組成的集合就好。
要完成這個練習,你需要建立資料型態CustomSet,並為它加上Eq和Show實例,然後實作下列函式:
deletedifferenceemptyfromListinsertintersectionisDisjointFromisSubsetOfmembernullsizetoListunion檔案裡已經有預留的資料宣告和型別簽章,但函式的定義,以及有意義的資料型態、newtype 或型別同義詞,都要由你自己來建立。
如果你想寫出有效率的實作,卻不太知道該從何下手,我所知道最好的入門書是 Chris Okasaki 的《Purely Functional Data Structures》,你可以在這裡讀到其中一個版本: https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf