چندریختی پارامتری

در زبان برنامه‌نویسی و نظریه نوع‌ها، چندریختی پارامتری یا چند شکلی پارامتری (Parametric polymorphism) راهی است برای رسا و گویاتر کردن زبان به‌گونه‌ای که زبان همچنان نوع-ایمن بماند.[۱] با چندریختی پارامتری، یک تابع یا نوع داده‌ای می‌تواند جنریک نوشته شود تا مقادیر را به‌طور یکسان، فارغ از نوع آنها، مدیریت کند. چنین تابع و نوع داده‌ای تابع جنریک و نوع داده‌ای جنریک نامیده می‌شوند.[۲]

برای نمونه، تابع append که دو لیست را به هم پیوند می‌دهد می‌تواند بگونه‌ای نوشته شود که بدون توجه به نوع المانها، عملیات خود را انجام دهد: می‌تواند لیست‌هایی از اعداد صحیح، اعداد حقیقی، رشته‌ها و … را به هم وصل کند.[۳]

اگر متغیر نوع a نشانگر نوع المان در لیست باشد، آنگاه append می‌تواند اینگونه باشد forall a. [a] × [a] -> [a] که [a] نشانگر نوع لیست‌ها با المانهایی از نوع a است.

می‌توان گفت نوع append برای همه مقادیر a، با a دارای پارامتر می‌شوند. از آنجا که تنها یک متغیر نوع وجود دارد، تابع نمی‌تواند برای هر جفتی ای از لیست‌ها بکار رود: جفت لیست‌ها، و همچنین لیست حاصل، باید حاوی المان‌هایی از نوع یکسان باشند.

منابع

[ویرایش]
  1. * Pierce, Benjamin C. (2002). Types and Programming Languages. MIT Press. ISBN 978-0-262-16209-8.
  2. Benjamin C. Pierce (2002). Types and Programming Languages. MIT Press. ISBN 978-0-262-16209-8.
  3. Yorgey, Brent. "More polymorphism and type classes". www.seas.upenn.edu. Retrieved 1 October 2022.