Results 1  10
of
10
The Discoveries of Continuations
, 1993
"... We give a brief account of the discoveries of continuations and related concepts by, A. Van Wijngaarden , A. W. Mazurkiewicz , F. L. Morris , C. P. Wadsworth , J. H. Morris , M. J. Fischer , and S. K. Abdali. ..."
Abstract

Cited by 111 (2 self)
 Add to MetaCart
We give a brief account of the discoveries of continuations and related concepts by, A. Van Wijngaarden , A. W. Mazurkiewicz , F. L. Morris , C. P. Wadsworth , J. H. Morris , M. J. Fischer , and S. K. Abdali.
On functors expressible in the polymorphic typed lambda calculus
 Logical Foundations of Functional Programming
, 1990
"... This is a preprint of a paper that has been submitted to Information and Computation. ..."
Abstract

Cited by 16 (1 self)
 Add to MetaCart
(Show Context)
This is a preprint of a paper that has been submitted to Information and Computation.
Combining algebraic effects with continuations
, 2007
"... We consider the natural combinations of algebraic computational effects such as sideeffects, exceptions, interactive input/output, and nondeterminism with continuations. Continuations are not an algebraic effect, but previously developed combinations of algebraic effects given by sum and tensor ext ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
We consider the natural combinations of algebraic computational effects such as sideeffects, exceptions, interactive input/output, and nondeterminism with continuations. Continuations are not an algebraic effect, but previously developed combinations of algebraic effects given by sum and tensor extend, with effort, to include commonly used combinations of the various algebraic effects with continuations. Continuations also give rise to a third sort of combination, that given by applying the continuations monad transformer to an algebraic effect. We investigate the extent to which sum and tensor extend from algebraic effects to arbitrary monads, and the extent to which Felleisen et al.’s C operator extends from continuations to its combination with algebraic effects. To do all this, we use Dubuc’s characterisation of strong monads in terms of enriched large Lawvere theories.
Pointfree programming with hylomorphisms
 In Workshop on DatatypeGeneric Programming
, 2004
"... ..."
This is a preprint of a paper that has been submitted to Information and Computation. On Functors Expressible in the Polymorphic Typed Lambda Calculus
, 1991
"... Given a model of the polymorphic typed lambda calculus based upon a Cartesian closed category K, there will be functors from K to K whose action on objects can be expressed by type expressions and whose action on morphisms can be expressed by ordinary expressions. We show that if T is such a functor ..."
Abstract
 Add to MetaCart
(Show Context)
Given a model of the polymorphic typed lambda calculus based upon a Cartesian closed category K, there will be functors from K to K whose action on objects can be expressed by type expressions and whose action on morphisms can be expressed by ordinary expressions. We show that if T is such a functor then there is a weak initial Talgebra and if, in addition, K possesses equalizers of all subsets of its morphism sets, then there is an initial Talgebra. These results are used to establish the impossibility of certain models, including those in which types denote sets and S → S ′ denotes the set of all functions from S to S ′.
Jorge Sousa Pinto
"... Abstract. Functional programs are particularly well suited to formal manipulation by equational reasoning. In particular, it is straightforward to use calculational methods for program transformation. Wellknown transformation techniques, like tupling or the introduction of accumulating parameters, ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Functional programs are particularly well suited to formal manipulation by equational reasoning. In particular, it is straightforward to use calculational methods for program transformation. Wellknown transformation techniques, like tupling or the introduction of accumulating parameters, can be implemented using calculation through the use of the fusion (or promotion) strategy. In this paper we revisit this transformation method, but, unlike most of the previous work on this subject, we adhere to a pure pointfree calculus that emphasizes the advantages of equational reasoning. We focus on the accumulation strategy initially proposed by Bird, where the transformed programs are seen as higherorder folds calculated systematically from a specification. The machinery of the calculus is expanded with higherorder pointfree operators that simplify the calculations. A substantial number of examples (both classic and new) are fully developed, and we introduce several shortcut optimization rules that capture typical transformation patterns. 1.
Recursion Patterns as Hylomorphisms
, 2003
"... In this paper we show how some of the recursion patterns typically used in algebraic programming can be defined using hylomorphisms. Most of these definitions were previously known. However, unlike previous approaches that use fixpoint induction, we show how to derive the standard laws of each re ..."
Abstract
 Add to MetaCart
In this paper we show how some of the recursion patterns typically used in algebraic programming can be defined using hylomorphisms. Most of these definitions were previously known. However, unlike previous approaches that use fixpoint induction, we show how to derive the standard laws of each recursion pattern by using just the basic laws of hylomorphisms. We also define the accumulation recursion pattern introduced by Pardo using a hylomorphism, and use this definition to derive the strictness conditions that characterize this operator in the presence of partiality. All definitions are implemented and exemplified in Haskell.
Chapter 5: Calculating Functional Programs
"... Functionalpctiona are merely equations; they may be manipjxxOB by straightforward equational reasoning. InpSUjSSB7jO one can use this style of reasoning to calculatepcnutiBS in the same way that one calculates numeric values in arithmetic. Many useful theorems for such reasoning derive from an alg ..."
Abstract
 Add to MetaCart
(Show Context)
Functionalpctiona are merely equations; they may be manipjxxOB by straightforward equational reasoning. InpSUjSSB7jO one can use this style of reasoning to calculatepcnutiBS in the same way that one calculates numeric values in arithmetic. Many useful theorems for such reasoning derive from an algebrai view ofp rograms, built around datatyp es and theirop erations. Traditional algebraic methods concentrate on initial algebras, constructors, and values; dual coalgebrai methods concentrate on final coalgebras, destructors, andp rocesses. Both methods are elegant andp owerful; they deserve to be combined. 1 Introduc45 These lecturen otes on algebraican coalgebraic methods forcalculatin funI tion programs derive from a series of lectures given at the Summer Schoolon Algebraic an Coalgebraic Methodsin the Mathematics of Program ConT# in Oxfordin April 2000. They are basedon an earlier series of lectures given at the Eston#` Win ter School on ComputerSciene in Palmse,EstonWR in 1999. 1.1 Why calculat programs? Over the past few decades there has been aphenIWk`B growthin the use of computers.Alonuter this growth, conFIB hasnW`R`F`W grown over the correctn 5 of computer systems, for example as regards human safety,fin`FI`W security,an system developmen t budgets. Problemsin developin software an errorsin the finW product have serious con]]]WkB#R` such problems are the neW ratherthan the exception There is clearly an`: for more reliable methods of programconmWB5]5IW than the tradition: ad hoc methodsin use today. What isn]I# is ascien e ofprogrammin inogra of today's craft (or perhaps black art). As JeremyGun warden poin ts out [15],computation isinR"B tly more mathematicalthan most enWBI]]Wk artifacts;henac practisin software enR5IRW should be at ...
DIPURe05.06.01 Down with Variables by Alcino Cunha and Jorge Sousa Pinto and José
, 2005
"... The subject of this paper is pointfree functional programming in Haskell. By this we mean writing programs using categoricallyinspired combinators, algebraic data types defined as fixed points of functors, and impicit recursion through the use of typeparameterized recursion patterns. This style o ..."
Abstract
 Add to MetaCart
(Show Context)
The subject of this paper is pointfree functional programming in Haskell. By this we mean writing programs using categoricallyinspired combinators, algebraic data types defined as fixed points of functors, and impicit recursion through the use of typeparameterized recursion patterns. This style of programming is appropriate for program calculation (reasoning about programs equationally), but difficult to actually use in practice – most programmers use a mixture of the above elements with explicit recursion and manipulation of arguments. In this paper we present a mechanism that allows programmers to convert classic pointwise code into pointfree style, and a Haskell library that enables the direct execution of the resulting code. Together, they make possible the use of pointfree either as a direct programming style or as a domain into which programs can be transformed before being subject to further manipulation. 1
PURe Program Understanding and Reengineering: Calculi and Applications
, 2003
"... In this paper we show how some of the recursion patterns typically used in algebraic programming can be defined using hylomorphisms. Most of these definitions were previously known. However, unlike previous approaches that use fixpoint induction, we show how to derive the standard laws of each recur ..."
Abstract
 Add to MetaCart
In this paper we show how some of the recursion patterns typically used in algebraic programming can be defined using hylomorphisms. Most of these definitions were previously known. However, unlike previous approaches that use fixpoint induction, we show how to derive the standard laws of each recursion pattern by using just the basic laws of hylomorphisms. We also define the accumulation recursion pattern introduced by Pardo using a hylomorphism, and use this definition to derive the strictness conditions that characterize this operator in the presence of partiality. All definitions are implemented and exemplified in Haskell. 1