۱۱ - ۱نوع‌داده‌های جبری

تا اینجا خیلی از نوع‌داده‌ها صحبت کردیم، شاید فکر کنین هر چیز که باید می‌گفتیم رو گفتیم. هدفِ این فصل، ارائه‌ی توضیح کامل از نحوه‌ی ساختِ نوع‌داده‌های خودتون‌ه. با نوشتن نوع‌داده‌های خودتون، از قوی‌ترین امکانات هسکل (تطبیق الگو، تایپچکر، و استنتاج تایپ) خیلی بیشتر می‌تونین بهره ببرین، و نهایتاً به کدِ خلاصه و مطمئن‌تری میرسین. ولی اول باید تفاوت بین نوع‌داده‌ها رو کامل‌تر توضیح بدیم و مفهومِ جبری بودن ِ نوع‌داده‌ها رو خوب درک کنیم.

یه تایپ رو میشه شمارش ای از سازنده‌ها که صفرتا یا بیشتر آرگومان دارن تعریف کرد.* در طول فصل باز هم به این توصیف از تایپ برمی‌گردیم، و هر دفعه روی یکی از بخش‌هاش تمرکز می‌کنیم.

*

این توصیف بر مبنای پیشنهاد اورا کیترل که در کانالِ آی-آر-سی ِ ‏‎#haskell-beginners‎‏ ارائه کرده بود نوشته شده.

هسکل تایپِ جمع، تایپِ ضرب، تایپِ ضرب با گرامرِ رکورد، تایپِ مستعار یا تایپِ مترادف (برای مثال ‏‎String‎‏ یه تایپِ مستعار برای ‏‎[Char]‎‏ ِه)، و یه نوع‌داده ِ خاص به اسمِ نیوتایپ (که گزینه‌های متفاوتی نسبت به تایپ‌های مترادف و تعریف داده داره) رو ارائه میده. تو این فصل همه‌ی اینها رو تک‌به‌تک توضیح میدیم، و راه‌هایی که بشه بیشترین بهره و امنیت تایپی رو ازشون برد نشون میدیم.

در این فصل:

  • مفهوم "جبر" در نوع‌داده‌های جبری رو توضیح میدیم؛

  • نحوه‌ی ساختِ داده‌سازها رو بررسی می‌کنیم؛

  • کِی و چطور نوع‌داده تعریف کردن رو کامل توضیح میدیم؛

  • موارد مصرفِ تایپ‌های مترادف و ‏‎newtype‎‏ رو مشخص می‌کنیم؛

  • گونه‌ها یا کایندها رو معرفی می‌کنیم.