Fold functions are a general mechanism for computing over recursive data structures. First-order folds compute results bottom-up. With higher-order folds, computations that inherit attributes from above can also be expressed. In this paper, we explore folds over a form of recursive higher-order function, called hyperfunctions, and show that hyperfunctions allow fold computations to coroutine across data structures, as well as compute bottom up and top down. We use the compiler technique of foldr-build as an exemplar to show how hyperfunctions can be used.
These notes discuss the simultaneous use of generalised fold operators and monads to structure funct...
The difficulty of programming indicates the value of possible further reduction in the complexity of...
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not ...
Fold functions are a general mechanism for computing over recursive data structures. First-order fol...
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursi...
One style of functional programming is based purely on recursive equations. Such equations are easy ...
Fold operators capture a common recursion pattern over algebraic datatypes. A fold essentially repla...
Abstract. Structural recursion over sets is meaningful only if the result is independent of the orde...
In this paper we formally state and prove theorems characterizing when a function can be constructi...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
Abstract. In this paper we formally state and prove theorems characterizing when a function can be c...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
This research is funded by NFS under grants CCR-0133502 and CCR-0325808. Higher-order encodings use ...
Fold and unfold are general purpose functionals for processing and constructing lists. By using the ...
AbstractWe give a necessary and sufficient condition for when a set-theoretic function can be writte...
These notes discuss the simultaneous use of generalised fold operators and monads to structure funct...
The difficulty of programming indicates the value of possible further reduction in the complexity of...
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not ...
Fold functions are a general mechanism for computing over recursive data structures. First-order fol...
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursi...
One style of functional programming is based purely on recursive equations. Such equations are easy ...
Fold operators capture a common recursion pattern over algebraic datatypes. A fold essentially repla...
Abstract. Structural recursion over sets is meaningful only if the result is independent of the orde...
In this paper we formally state and prove theorems characterizing when a function can be constructi...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
Abstract. In this paper we formally state and prove theorems characterizing when a function can be c...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
This research is funded by NFS under grants CCR-0133502 and CCR-0325808. Higher-order encodings use ...
Fold and unfold are general purpose functionals for processing and constructing lists. By using the ...
AbstractWe give a necessary and sufficient condition for when a set-theoretic function can be writte...
These notes discuss the simultaneous use of generalised fold operators and monads to structure funct...
The difficulty of programming indicates the value of possible further reduction in the complexity of...
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not ...