یک نوع مجموعهی سفارشی بسازید.
گاهی تعریف یک ساختار دادهی سفارشی از نوعی خاص، مثل مجموعه، ضروری است. در این تمرین مجموعهی خودتان را تعریف میکنید. نحوهی کارکرد درونی آن مهم نیست، تا زمانی که مثل مجموعهای از عنصرهای یکتا رفتار کند.
برای تکمیل این تمرین، باید نوع دادهی CustomSet را ایجاد کنید، همراه با نمونههای Eq و Show، و توابع زیر را پیادهسازی کنید:
deletedifferenceemptyfromListinsertintersectionisDisjointFromisSubsetOfmembernullsizetoListunionیک اعلان دادهی ساختگی و امضاهای نوع از قبل در جای خود قرار دارند، اما تعریف توابع و ساختن یک نوع داده، newtype یا هممعنای نوع معنادار به عهدهی خودتان است.
اگر به نوشتن یک پیادهسازی کارآمد علاقه دارید اما دقیقاً نمیدانید از کجا شروع کنید، بهترین کتاب مقدماتی که من میشناسم، «Purely Functional Data Structures» نوشتهی Chris Okasaki است که میتوانید نسخهای از آن را اینجا بخوانید: https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf