در زبان برنامهنویسی و نظریه نوعها، چندریختی پارامتری یا چند شکلی پارامتری (Parametric polymorphism) راهی است برای رسا و گویاتر کردن زبان بهگونهای که زبان همچنان نوع-ایمن بماند.[۱] با چندریختی پارامتری، یک تابع یا نوع دادهای میتواند جنریک نوشته شود تا مقادیر را بهطور یکسان، فارغ از نوع آنها، مدیریت کند. چنین تابع و نوع دادهای تابع جنریک و نوع دادهای جنریک نامیده میشوند.[۲]
برای نمونه، تابع append
که دو لیست را به هم پیوند میدهد میتواند بگونهای نوشته شود که بدون توجه به نوع المانها، عملیات خود را انجام دهد: میتواند لیستهایی از اعداد صحیح، اعداد حقیقی، رشتهها و … را به هم وصل کند.[۳]
اگر متغیر نوع a نشانگر نوع المان در لیست باشد، آنگاه append
میتواند اینگونه باشد forall a. [a] × [a] -> [a]
که [a]
نشانگر نوع لیستها با المانهایی از نوع a است.
میتوان گفت نوع append
برای همه مقادیر a، با a دارای پارامتر میشوند. از آنجا که تنها یک متغیر نوع وجود دارد، تابع نمیتواند برای هر جفتی ای از لیستها بکار رود: جفت لیستها، و همچنین لیست حاصل، باید حاوی المانهایی از نوع یکسان باشند.