Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Currying
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Type theory === In [[type theory]], the general idea of a [[type system]] in computer science is formalized into a specific algebra of types. For example, when writing <math>f \colon X \to Y </math>, the intent is that <math>X</math> and <math>Y</math> are [[type system|types]], while the arrow <math>\to</math> is a [[type constructor]], specifically, the [[function type]] or arrow type. Similarly, the Cartesian product <math>X \times Y</math> of types is constructed by the [[product type]] constructor <math>\times</math>. The type-theoretical approach is expressed in programming languages such as [[ML (programming language)|ML]] and the languages derived from and inspired by it: [[Caml]], [[Haskell]], and [[F Sharp (programming language)|F#]]. The type-theoretical approach provides a natural complement to the language of [[category theory]], as discussed below. This is because categories, and specifically, [[monoidal categories]], have an [[internal language]], with [[simply typed lambda calculus]] being the most prominent example of such a language. It is important in this context, because it can be built from a single type constructor, the arrow type. Currying then endows the language with a natural product type. The correspondence between objects in categories and types then allows programming languages to be re-interpreted as logics (via [[Curry–Howard correspondence]]), and as other types of mathematical systems, as explored further, below.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)