Top 1K Features Creators Events Podcasts Books Extensions Interviews Blog Explorer CSV

Type Language

< >

Type Language is a programming language created in 2013.

#1057on PLDB 11Years Old 405kRepos

TL (Type Language) serves to describe the used system of types, constructors, and existing functions.


Example from Linguist:
// built-in types int#a8509bda ? = Int; long ? = Long; double ? = Double; string ? = String; null = Null; vector {t:Type} # [ t ] = Vector t; coupleInt {alpha:Type} int alpha = CoupleInt<alpha>; coupleStr {gamma:Type} string gamma = CoupleStr gamma; /* The name of the type variable is irrelevant: "gamma" could be replaced with "alpha" However, the combinator number will depend on the specific choice. */ intHash {alpha:Type} vector<coupleInt<alpha>> = IntHash<alpha>; strHash {alpha:Type} (vector (coupleStr alpha)) = StrHash alpha; intSortedHash {alpha:Type} intHash<alpha> = IntSortedHash<alpha>; strSortedHash {alpha:Type} (strHash alpha) = StrSortedHash alpha; // custom types pair x:Object y:Object = Pair; triple x:Object y:Object z:Object = Triple; user#d23c81a3 id:int first_name:string last_name:string = User; no_user#c67599d1 id:int = User; group id:int title:string last_name:string = Group; no_group = Group; ---functions--- // Maybe some built-in arithmetic functions; inverse quotes make "identifiers" out of arbitrary non-alphanumeric strings `+` Int Int = Int; `-` Int Int = Int; `+` Double Double = Double; // ... // API functions (aka RPC functions) getUser#b0f732d5 int = User; getUsers#2d84d5f5 (Vector int) = Vector User;

Language features

Feature Supported Example Token
MultiLine Comments ✓ /* A comment */ /* */
Comments ✓ // A comment
Line Comments ✓ // A comment //
Semantic Indentation X

- Build the next great programming language · Add · Issues · About · Search · Keywords · Livestreams · Labs · Resources · Acknowledgements

Built with Scroll v154.3.0