PLDB
Languages Features Creators Calendar CSV Resources Blog About Donate Add Language
GitHub icon

Generics

< >
Example from Java, Pizza, Deesel:
List<String> v = new ArrayList<String>(); v.add("test"); Integer i = v.get(0); // (type error) compilation-time error
Example from C#:
// Declare the generic class. public class GenericList<T> { public void Add(T input) { } } class TestGenericList { private class ExampleClass { } static void Main() { // Declare a list of type int. GenericList<int> list1 = new GenericList<int>(); list1.Add(1); // Declare a list of type string. GenericList<string> list2 = new GenericList<string>(); list2.Add(""); // Declare a list of type ExampleClass. GenericList<ExampleClass> list3 = new GenericList<ExampleClass>(); list3.Add(new ExampleClass()); } }
Example from Ada:
generic Max_Size : Natural; -- a generic formal value type Element_Type is private; -- a generic formal type; accepts any nonlimited type package Stacks is type Size_Type is range 0 .. Max_Size; type Stack is limited private; procedure Create (S : out Stack; Initial_Size : in Size_Type := Max_Size); procedure Push (Into : in out Stack; Element : in Element_Type); procedure Pop (From : in out Stack; Element : out Element_Type); Overflow : exception; Underflow : exception; private subtype Index_Type is Size_Type range 1 .. Max_Size; type Vector is array (Index_Type range <>) of Element_Type; type Stack (Allocated_Size : Size_Type := 0) is record Top : Index_Type; Storage : Vector (1 .. Allocated_Size); end record; end Stacks;
function identity<T>(arg: T): T { return arg; }
Example from Felix:
// generics fun g (x) => f (f x); println$ g 1, g "hello"; println$ _map f (1,"hello",2.0);
Example from Jule:
type[T] fn generic_function(s: []T) { // ... }

Languages with Generics include Java, C#, Ada, TypeScript, Felix, Jule, Pizza, Deesel, Static Typescript

Languages without Generics include progsbase

Read more about Generics on the web: 1.

HTML of this page generated by Features.ts

hasGenerators.html 路 hasGenerics.html 路 hasGlobalScope.html

View source

PLDB - Build the next great programming language Search v2023 Day 157 Docs Acknowledgements Traffic Today Traffic Trends Mirrors GitHub feedback@pldb.com