System F
Typed lambda calculus
System F (also polymorphic lambda calculus or second-order lambda calculus) is a typed lambda calculus that introduces, to simply typed lambda calculus, a mechanism of universal quantification over types. System F formalizes parametric polymorphism in programming languages, thus forming a theoretical basis for languages such as Haskell and ML.
Nº Q2552799 ★
Common · Knowledge
System F
Typed lambda calculus
System F (also polymorphic lambda calculus or second-order lambda calculus) is a typed lambda calculus that introduces, to simply typed lambda calculus, a mechanism of universal quantification over types. System F formalizes parametric polymorphism in programming languages, thus forming a theoretical basis for languages such as Haskell and ML.
Last price
—
Floor price
—
7-day median
—
30-day sales
0
30-day range
—
In circulation
0
Price history
median
low – high
sales
No sales in this period
Show table
| Date | median | Low | High | sales |
|---|
Sales history
- Last sale
- —
- 30-day average
- —
- 30-day low
- —
- 30-day high
- —
- Sales 7d
- 0
- Sales 30d
- 0
No sales yet.
Anonymous sales: no buyer or seller shown. Figures count player-to-player sales only.
From Wikipedia
System F (also polymorphic lambda calculus or second-order lambda calculus) is a typed lambda calculus that introduces, to simply typed lambda calculus, a mechanism of universal quantification over types. System F formalizes parametric polymorphism in programming languages, thus forming a theoretical basis for languages such as Haskell and ML. It was discovered independently by logician Jean-Yves Girard (1972) and computer scientist John C. Reynolds. Whereas simply typed lambda calculus has variables ranging over terms, and binders for them, System F additionally has variables ranging over types, and binders for them. As an example, the fact that the identity function can have any type of the form A → A would be formalized in System F as the statement ⊢ Λ α . λ x α . x : ∀ α . α → α {\displaystyle \vdash \Lambda \alpha .\lambda x^{\alpha }.x:\forall \alpha .\alpha \to \alpha } where α {\displaystyle \alpha } is a type variable. The upper-case Λ {\displaystyle \Lambda } is traditionally used to denote type-level functions, as opposed to the lower-case λ {\displaystyle \lambda } which is used for value-level functions. (The superscripted α {\displaystyle \alpha } means that the bound variable x is of type α {\displaystyle \alpha } ; the expression after the colon is the type of the lambda expression preceding it.) As a term rewriting system, System F is strongly normalizing. However, type inference in System F (without explicit type annotations) is undecidable. Under the Curry–Howard isomorphism, System F corresponds to second-order propositional intuitionistic logic. System F can be seen as part of the lambda cube, together with even more expressive typed lambda calculi, including those with dependent types. According to Girard, the "F" in System F was picked by chance.
Text: Wikipédia, CC BY-SA 4.0. ·
Related cards
Hindley–Milner type system
Type system supporting type inference
Nº Q200996 ★★
Lambda calculus
Formal system in mathematical logic
Nº Q242028 ★★★
Horner's method
Algorithm for polynomial evaluation
Nº Q944658 ★★
Computer algebra system
Mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists
Nº Q830340 ★★
Polymorphism (computer science)
In programming languages and type theory, accessing different types using a common interface
Nº Q3240252 ★★★
Forth (programming language)
Programming language
Nº Q275472 ★★