Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not nearly as well appreciated. We believe they deserve better. To illustrate, ve present (indeed, we calculate) a number of algorithms for computing the breadth-first traversal of a tree. We specify breadth-first traversal in terms of level-order traversal, which we characterize first as a fold. The presentation as a fold is simple, but it is inefficient, and removing the inefficiency makes it no longer a fold. We calculate a characterization as an unfold from the characterization as a fold; this unfold is equally clear, but more efficient. We also calculate a characterization of breadth-first traversal directly as an unfold; this turns out to b...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
Two conditions on a collection of simple orders - unimodality and straightness - are necessary but n...
We develop machine-checked verifications of the full functional correctness of C implementations of ...
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not ...
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not ...
Sorting algorithms are one of the key pedagogical foundations of computer science, and their propert...
A general scheme for breadth-first graph traversal. - In: Mathematics of program construction / Bern...
One style of functional programming is based purely on recursive equations. Such equations are easy ...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
International audienceBy using pointers, breadth-first algorithms are very easy to implement efficie...
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursi...
[[abstract]]A self-stabilizing algorithm for constructing breadth-first trees is proposed. Its self-...
We introduce a fold operation that realises a tree-to-graph transduction by merging selected nodes i...
AbstractWe give a necessary and sufficient condition for when a set-theoretic function can be writte...
An effectful traversal of a data structure iterates over every element, in some predetermined order,...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
Two conditions on a collection of simple orders - unimodality and straightness - are necessary but n...
We develop machine-checked verifications of the full functional correctness of C implementations of ...
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not ...
Folds are appreciated by functional programmers. Their dual, unfolds, are not new, but they are not ...
Sorting algorithms are one of the key pedagogical foundations of computer science, and their propert...
A general scheme for breadth-first graph traversal. - In: Mathematics of program construction / Bern...
One style of functional programming is based purely on recursive equations. Such equations are easy ...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
International audienceBy using pointers, breadth-first algorithms are very easy to implement efficie...
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursi...
[[abstract]]A self-stabilizing algorithm for constructing breadth-first trees is proposed. Its self-...
We introduce a fold operation that realises a tree-to-graph transduction by merging selected nodes i...
AbstractWe give a necessary and sufficient condition for when a set-theoretic function can be writte...
An effectful traversal of a data structure iterates over every element, in some predetermined order,...
We give a necessary and sufficient condition for when a set-theoretic function can be written using ...
Two conditions on a collection of simple orders - unimodality and straightness - are necessary but n...
We develop machine-checked verifications of the full functional correctness of C implementations of ...