首页> 外文期刊>Science of Computer Programming >Adjoint folds and unfolds-An extended study
【24h】

Adjoint folds and unfolds-An extended study

机译:伴随折叠和展开-扩展研究

获取原文

摘要

Folds and unfolds are at the heart of the algebra of programming. They allow the cognoscenti to derive and manipulate programs rigorously and effectively. However, most, if not all, programs require some tweaking to be given the form of an (un)fold. In this article, we remedy the situation by introducing adjoint (un)folds. We demonstrate that most programs are already of the required form and thus are directly amenable to formal manipulation. Central to the development is the categorical notion of an adjunction, which links adjoint (un)folds to standard (un)folds. We discuss a multitude of basic adjunctions and ways of combining adjunctions and show that they are directly relevant to programming. Furthermore, we develop the calculational properties of adjoint (un)folds, providing several fusion laws, which codify basic optimisation principles. We give a novel proof of type fusion based on adjoint folds and discuss several applications-type fusion states conditions for fusing a left adjoint with an initial algebra to form another initial algebra. The formal development is complemented by a series of examples in Haskell.
机译:折叠和展开是编程代数的核心。它们允许cognoscenti严格有效地派生和操纵程序。但是,大多数(如果不是全部)程序需要进行一些调整才能赋予(展开)形式。在本文中,我们通过引入伴随(非)折叠来纠正这种情况。我们证明大多数程序已经具有所需的形式,因此可以直接进行正式操作。开发的核心是附加的绝对概念,它将伴随(un)折叠与标准(un)折叠联系起来。我们讨论了许多基本的附加词和组合附加词的方法,并表明它们与编程直接相关。此外,我们开发了伴随(非)折叠的计算属性,提供了几种融合定律,这些定律将基本的优化原理进行了整理。我们给出了基于伴随折叠的类型融合的新颖证明,并讨论了将左伴随与初始代数融合以形成另一个初始代数的几种应用类型融合状态条件。正式的发展得到了Haskell中一系列示例的补充。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号