English  

كتب parametric polymorphism or generic programming

اذا لم تجد ما تبحث عنه يمكنك استخدام كلمات أكثر دقة.

عرض المزيد

تعددية الأشكال الحدودية أو البرمجة العامة (معلومة)


مفهوم تعددية الأشكال الحدودية ينطبق على كل من أنواع البيانات و الدَّوال، وهذا المفهوم يساعدنا على كتابتهم بطريقة عامة بحيث يمكننا التعامل مع القيم والمحتوى بدون الاعتماد أو الالتفات لنوعيتهم.

والمثال التالي بلغة "هاسكال" يوضح كيفية استخدام هذا النوع من تعددية الأشكال، بحيث يمكننا استخدام أكثر من نوع كمدخل للصنف:

data List a = Nil | Cons a (List a) length :: List a -> Integer length Nil = 0 length (Cons x xs) = 1 + length xs map :: (a -> b) -> List a -> List b map f Nil = Nil map f (Cons x xs) = Cons (f x) (map f xs)

وهذا النوع من تعددية الأشكال متوفر أيضا في لغات مختلفة مثل "جافا، سي شارب، سي بلس بلس" وهاكم مثال على "سي شارب":

class List<T> { class Node<T> { T elem; Node<T> next; } Node<T> head; int length() {... } } List<B> map(Func<A, B> f, List<A> xs) { ... }

المصدر: wikipedia.org