A new notation for arrows

A new notation for arrows
复制标题

箭头的新表示法

DOI:
10.1145/507635.507664
复制
发表时间:
2001
影响因子:
1.1
通讯作者:
R. Paterson
R. Paterson
中科院分区:
计算机科学2区
文献类型:
--
作者:
R. Paterson

文献摘要

被引文献

相似文献

事实证明,Moggi用来构建示意性描述的Monad的分类概念已被证明是构建组合库的强大工具。此外,Monadic编程样式为多种计算提供了方便的语法,因此每个库都定义了一个新的sublanguage。最近,一些工人提出了单元的概括,称为“箭头”或弗雷德类别。额外的通用性有望提高嵌入式方法的功率,表现力和效率,但与天然的抽象和应用并不同意。定义通常以无点样式给出,这对于证明一般属性很有用,但对于编程特定实例可能很尴尬。在本文中,我们为功能性语言Haskell定义了一个简单的扩展,使这些新的计算概念更加方便。我们的语言类似于Monadic风格,并且具有类似的推理属性。此外,从某种意义上说,可以将新组合形式定义为主机语言的表达式,这是可以扩展的。
The categorical notion of monad, used by Moggi to structure denotational descriptions, has proved to be a powerful tool for structuring combinator libraries. Moreover, the monadic programming style provides a convenient syntax for many kinds of computation, so that each library defines a new sublanguage. Recently, several workers have proposed a generalization of monads, called variously "arrows" or Freyd-categories. The extra generality promises to increase the power, expressiveness and efficiency of the embedded approach, but does not mesh as well with the native abstraction and application. Definitions are typically given in a point-free style, which is useful for proving general properties, but can be awkward for programming specific instances. In this paper we define a simple extension to the functional language Haskell that makes these new notions of computation more convenient to use. Our language is similar to the monadic style, and has similar reasoning properties. Moreover, it is extensible, in the sense that new combining forms can be defined as expressions in the host language.