List Of Functional Programming Topics
This is a list of functional programming topics. Foundational concepts * Programming paradigm *Declarative programming *Programs as mathematical objects * Function-level programming * Purely functional programming * Total functional programming * Lambda programming *Static scoping In computer programming, the scope of a name binding (an association of a name to an entity, such as a variable) is the part of a program where the name binding is valid; that is, where the name can be used to refer to the entity. In other parts o ... *Higher-order function *Referential transparency Lambda calculus *Currying *Lambda abstraction *Church–Rosser theorem *Extensionality *Church numeral Combinatory logic *Fixed point combinator *SKI combinator calculus *B, C, K, W system *SECD machine *Graph reduction machine Intuitionistic logic *Sequent, sequent calculus *Natural deduction *Intuitionistic type theory *BHK interpretation *Curry–Howard correspondence *Linear logic *Game semantics ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Functional Programming
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program. In functional programming, functions are treated as first-class citizens, meaning that they can be bound to names (including local identifiers), passed as arguments, and returned from other functions, just as any other data type can. This allows programs to be written in a declarative and composable style, where small functions are combined in a modular manner. Functional programming is sometimes treated as synonymous with purely functional programming, a subset of functional programming which treats all functions as deterministic mathematical functions, or pure functions. When a pure function is call ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
SKI Combinator Calculus
The SKI combinator calculus is a combinatory logic system and a computational system. It can be thought of as a computer programming language, though it is not convenient for writing software. Instead, it is important in the mathematical theory of algorithms because it is an extremely simple Turing complete language. It can be likened to a reduced version of the untyped lambda calculus. It was introduced by Moses Schönfinkel and Haskell Curry. All operations in lambda calculus can be encoded via abstraction elimination into the SKI calculus as binary trees whose leaves are one of the three symbols S, K, and I (called ''combinators''). Notation Although the most formal representation of the objects in this system requires binary trees, for simpler typesetting they are often represented as parenthesized expressions, as a shorthand for the tree they represent. Any subtrees may be parenthesized, but often only the right-side subtrees are parenthesized, with left associativity im ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
![]() |
Typed And Untyped Languages
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming language is usually split into the two components of syntax (form) and semantics (meaning), which are usually defined by a formal language. Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference. Some languages have both, with the basic language defined by a standard and extensions taken from the dominant implementation being common. Programming language theory is the subfield of computer science that studies the design, implementation, analysis, characterization, and classification of programming languages. Definitions There are many considerations when def ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
Typed Lambda Calculus
A typed lambda calculus is a typed formalism (mathematics), formalism that uses the lambda-symbol (\lambda) to denote anonymous function abstraction. In this context, types are usually objects of a syntactic nature that are assigned to lambda terms; the exact nature of a type depends on the calculus considered (see kinds below). From a certain point of view, typed lambda calculi can be seen as refinements of the untyped lambda calculus, but from another point of view, they can also be considered the more fundamental theory and ''untyped lambda calculus'' a special case with only one type. Typed lambda calculi are foundational programming languages and are the base of typed functional programming languages such as ML programming language, ML and Haskell (programming language), Haskell and, more indirectly, typed imperative programming, imperative programming languages. Typed lambda calculi play an important role in the design of type systems for programming languages; here, typabili ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Game Semantics
Game semantics (german: dialogische Logik, translated as '' dialogical logic'') is an approach to formal semantics that grounds the concepts of truth or validity on game-theoretic concepts, such as the existence of a winning strategy for a player, somewhat resembling Socratic dialogues or medieval theory of Obligationes. History In the late 1950s Paul Lorenzen was the first to introduce a game semantics for logic, and it was further developed by Kuno Lorenz. At almost the same time as Lorenzen, Jaakko Hintikka developed a model-theoretical approach known in the literature as ''GTS'' (game-theoretical semantics). Since then, a number of different game semantics have been studied in logic. Shahid Rahman (Lille) and collaborators developed dialogical logic into a general framework for the study of logical and philosophical issues related to logical pluralism. Beginning 1994 this triggered a kind of renaissance with lasting consequences. This new philosophical impulse experienced ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Linear Logic
Linear logic is a substructural logic proposed by Jean-Yves Girard as a refinement of classical and intuitionistic logic, joining the dualities of the former with many of the constructive properties of the latter. Although the logic has also been studied for its own sake, more broadly, ideas from linear logic have been influential in fields such as programming languages, game semantics, and quantum physics (because linear logic can be seen as the logic of quantum information theory), as well as linguistics, particularly because of its emphasis on resource-boundedness, duality, and interaction. Linear logic lends itself to many different presentations, explanations, and intuitions. Proof-theoretically, it derives from an analysis of classical sequent calculus in which uses of (the structural rules) contraction and weakening are carefully controlled. Operationally, this means that logical deduction is no longer merely about an ever-expanding collection of persistent "truth ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Curry–Howard Correspondence
In programming language theory and proof theory, the Curry–Howard correspondence (also known as the Curry–Howard isomorphism or equivalence, or the proofs-as-programs and propositions- or formulae-as-types interpretation) is the direct relationship between computer programs and mathematical proofs. It is a generalization of a syntactic analogy between systems of formal logic and computational calculi that was first discovered by the American mathematician Haskell Curry and the logician William Alvin Howard. It is the link between logic and computation that is usually attributed to Curry and Howard, although the idea is related to the operational interpretation of intuitionistic logic given in various formulations by L. E. J. Brouwer, Arend Heyting and Andrey Kolmogorov (see Brouwer–Heyting–Kolmogorov interpretation) and Stephen Kleene (see Realizability). The relationship has been extended to include category theory as the three-way Curry–Howard–Lambek corre ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
BHK Interpretation , Armenian political party
* ''Bedroom - Hall - Kitchen'', as used in India to describe apartments: 2 BHK, 3 BHK…
{{disambig ...
BHK is a three-letter abbreviation that may refer to: * BHK interpretation of intuitionistic predicate logic * Baby hamster kidney cells used in molecular biology * Bachelor of Human Kinetics (BHk) degree. * Baltische Historische Kommission, organization dealing with history of Baltic Germans * ''Biblia Hebraica'' (Kittel), by Rudolf Kittel * Bush Hill Park railway station, London, UK, National Rail station code * Bukhara International Airport, Uzbekistan, IATA code * Prosperous Armenia Prosperous Armenia Party (PAP; hy, Բարգավաճ Հայաստան կուսակցություն, Bargavatch Hayastan kusaktsut’yun, abbreviated as ԲՀԿ BHK), is a conservative political party in Armenia. It was founded by businessman Gagik ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Intuitionistic Type Theory
Intuitionistic type theory (also known as constructive type theory, or Martin-Löf type theory) is a type theory and an alternative foundation of mathematics. Intuitionistic type theory was created by Per Martin-Löf, a Swedish mathematician and philosopher, who first published it in 1972. There are multiple versions of the type theory: Martin-Löf proposed both intensional and extensional variants of the theory and early impredicative versions, shown to be inconsistent by Girard's paradox, gave way to predicative versions. However, all versions keep the core design of constructive logic using dependent types. Design Martin-Löf designed the type theory on the principles of mathematical constructivism. Constructivism requires any existence proof to contain a "witness". So, any proof of "there exists a prime greater than 1000" must identify a specific number that is both prime and greater than 1000. Intuitionistic type theory accomplished this design goal by internalizin ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
![]() |
Natural Deduction
In logic and proof theory, natural deduction is a kind of proof calculus in which logical reasoning is expressed by inference rules closely related to the "natural" way of reasoning. This contrasts with Hilbert-style systems, which instead use axioms as much as possible to express the logical laws of deductive reasoning. Motivation Natural deduction grew out of a context of dissatisfaction with the axiomatizations of deductive reasoning common to the systems of Hilbert, Frege, and Russell (see, e.g., Hilbert system). Such axiomatizations were most famously used by Russell and Whitehead in their mathematical treatise '' Principia Mathematica''. Spurred on by a series of seminars in Poland in 1926 by Łukasiewicz that advocated a more natural treatment of logic, Jaśkowski made the earliest attempts at defining a more natural deduction, first in 1929 using a diagrammatic notation, and later updating his proposal in a sequence of papers in 1934 and 1935. His proposals led to d ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
![]() |
Sequent Calculus
In mathematical logic, sequent calculus is a style of formal logical argumentation in which every line of a proof is a conditional tautology (called a sequent by Gerhard Gentzen) instead of an unconditional tautology. Each conditional tautology is inferred from other conditional tautologies on earlier lines in a formal argument according to rules and procedures of inference, giving a better approximation to the natural style of deduction used by mathematicians than to David Hilbert's earlier style of formal logic, in which every line was an unconditional tautology. More subtle distinctions may exist; for example, propositions may implicitly depend upon non-logical axioms. In that case, sequents signify conditional theorems in a first-order language rather than conditional tautologies. Sequent calculus is one of several extant styles of proof calculus for expressing line-by-line logical arguments. * Hilbert style. Every line is an unconditional tautology (or theorem). * Gentze ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
Sequent
In mathematical logic, a sequent is a very general kind of conditional assertion. : A_1,\,\dots,A_m \,\vdash\, B_1,\,\dots,B_n. A sequent may have any number ''m'' of condition formulas ''Ai'' (called " antecedents") and any number ''n'' of asserted formulas ''Bj'' (called "succedents" or "consequents"). A sequent is understood to mean that if all of the antecedent conditions are true, then at least one of the consequent formulas is true. This style of conditional assertion is almost always associated with the conceptual framework of sequent calculus. Introduction The form and semantics of sequents Sequents are best understood in the context of the following three kinds of logical judgments: Unconditional assertion. No antecedent formulas. * Example: ⊢ ''B'' * Meaning: ''B'' is true. Conditional assertion. Any number of antecedent formulas. Simple conditional assertion. Single consequent formula. * Example: ''A1'', ''A2'', ''A3'' ⊢ ''B'' * Meaning: IF ''A1'' AND '' ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |