Structural type system, the Glossary
A structural type system (or property-based type system) is a major class of type systems in which type compatibility and equivalence are determined by the type's actual structure or definition and not by other characteristics such as its name or place of declaration.[1]
Table of Contents
12 relations: Algebraic data type, Dichotomy, Duck typing, Go (programming language), Haskell, Haxe, Interface (object-oriented programming), Nominal type system, OCaml, Subtyping, Type system, WikiWikiWeb.
- Type systems
Algebraic data type
In computer programming, especially functional programming and type theory, an algebraic data type (ADT) is a kind of composite type, i.e., a type formed by combining other types.
See Structural type system and Algebraic data type
Dichotomy
A dichotomy is a partition of a whole (or a set) into two parts (subsets).
See Structural type system and Dichotomy
Duck typing
In computer programming, duck typing is an application of the duck test—"If it walks like a duck and it quacks like a duck, then it must be a duck"—to determine whether an object can be used for a particular purpose.
See Structural type system and Duck typing
Go (programming language)
Go is a statically typed, compiled high-level programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson.
See Structural type system and Go (programming language)
Haskell
Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation.
See Structural type system and Haskell
Haxe
Haxe is a high-level cross-platform programming language and compiler that can produce applications and source code for many different computing platforms from one code-base.
See Structural type system and Haxe
Interface (object-oriented programming)
In object-oriented programming, an interface or protocol type is a data type that acts as an abstraction of a class.
See Structural type system and Interface (object-oriented programming)
Nominal type system
In computer science, a type system is nominal (also called nominative or name-based) if compatibility and equivalence of data types is determined by explicit declarations and/or the name of the types. Structural type system and nominal type system are type systems.
See Structural type system and Nominal type system
OCaml
OCaml (formerly Objective Caml) is a general-purpose, high-level, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features.
See Structural type system and OCaml
Subtyping
In programming language theory, subtyping (also called subtype polymorphism or inclusion polymorphism) is a form of type polymorphism.
See Structural type system and Subtyping
Type system
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every term (a word, phrase, or other set of symbols). Structural type system and type system are type systems.
See Structural type system and Type system
WikiWikiWeb
The WikiWikiWeb is the first wiki, or user-editable website.
See Structural type system and WikiWikiWeb
See also
Type systems
- Comparison of programming languages by type system
- Data types
- Dependent type
- Flow-sensitive typing
- Gradual typing
- Hindley–Milner type system
- Inheritance (object-oriented programming)
- Intersection type
- Intersection type discipline
- Latent typing
- Liquid Haskell
- Manifest typing
- Multi-stage programming
- Nominal type system
- Refinement type
- Security type system
- Session type
- Strong and weak typing
- Structural type system
- Type inference
- Type system
References
[1] https://en.wikipedia.org/wiki/Structural_type_system
Also known as Structural subtyping, Structural type, Structural typing.