Eingeschränkte generische Polymorphie

die Werte der Typvariablen (= Argumente für Typschablonen) müssen gewisse Bedingungen erfüllen (gewisse Schnittstellen implementieren):

interface Comparable<T> {
  public int compareTo(T o);
}
interface SortedSet<T extends Comparable<T>>;

Haskell:

qsort :: Ord a => [a] -> [a]
qsort [] = []
qsort (x : xs) =
    let (lo, hi) = partition (< x) xs
    in  qsort lo ++ [x] ++ qsort hi



Johannes Waldmann 2006-02-02