Arrow (functional Programming)
   HOME





Arrow (functional Programming)
In computer science, arrows or bolts are a type class used in programming to describe computations in a pure and declarative fashion. First proposed by computer scientist John Hughes as a generalization of monads, arrows provide a referentially transparent way of expressing relationships between ''logical'' steps in a computation. Unlike monads, arrows don't limit steps to having one and only one input. As a result, they have found use in functional reactive programming, point-free programming, and parsers among other applications. Motivation and history While arrows were in use before being recognized as a distinct class, it wasn't until 2000 that John Hughes first published research focusing on them. Until then, monads had proven sufficient for most problems requiring the combination of program logic in pure code. However, some useful libraries, such as the Fudgets library for graphical user interfaces and certain efficient parsers, defied rewriting in a monadic form. The ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Computer Science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, applied disciplines (including the design and implementation of Computer architecture, hardware and Software engineering, software). Algorithms and data structures are central to computer science. The theory of computation concerns abstract models of computation and general classes of computational problem, problems that can be solved using them. The fields of cryptography and computer security involve studying the means for secure communication and preventing security vulnerabilities. Computer graphics (computer science), Computer graphics and computational geometry address the generation of images. Programming language theory considers different ways to describe computational processes, and database theory concerns the management of re ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Kleisli Categories
In category theory, a Kleisli category is a category (mathematics), category naturally associated to any monad (category theory), monad ''T''. It is equivalent to the category of Free object, free Monad (category theory)#Algebras for a monad, ''T''-algebras. The Kleisli category is one of two extremal solutions to the question: "''Does every monad arise from an Adjunction (category theory), adjunction?''" The other extremal solution is the Eilenberg–Moore category. Kleisli categories are named for the mathematician Heinrich Kleisli. Formal definition Let ⟨''T'', ''η'', ''μ''⟩ be a monad (category theory), monad over a category ''C''. The Kleisli category of ''C'' is the category ''C''''T'' whose objects and morphisms are given by :\begin\mathrm() &= \mathrm(), \\ \mathrm_(X,Y) &= \mathrm_(X,TY).\end That is, every morphism ''f: X → T Y'' in ''C'' (with codomain ''TY'') can also be regarded as a morphism in ''C''''T'' (but with codomain ''Y''). Composition of morp ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  



MORE