2012
DOI: 10.4204/eptcs.76.5
|View full text |Cite
|
Sign up to set email alerts
|

An Investigation of the Laws of Traversals

Abstract: Traversals of data structures are ubiquitous in programming. Consequently, it is important to be able to characterise those structures that are traversable and understand their algebraic properties. Traversable functors have been characterised by McBride and Paterson as those equipped with a distributive law over arbitrary applicative functors; however, laws that fully capture the intuition behind traversals are missing. This article is an attempt to remedy this situation by proposing laws for characterising t… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
17
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
4
2
2

Relationship

1
7

Authors

Journals

citations
Cited by 15 publications
(17 citation statements)
references
References 8 publications
0
17
0
Order By: Relevance
“…Like many cherished tools in a crowded toolbox, the Representation Theorem is surprisingly versatile. Using it, we have resolved several more general open questions, in addition to the specific programming problem we designed it for: the property of 'naturality' in the datatype, the illegality of half-hearted and duplicitous traversals (Gibbons and Oliveira 2009), the correspondence between traversable datatypes and finitary containers (Moggi et al 1999), and more precisely the bijection between traversal strategies for a data structure (shape) and permutations of its elements (Jaskelioff and Rypáček 2012).…”
Section: Discussionmentioning
confidence: 99%
“…Like many cherished tools in a crowded toolbox, the Representation Theorem is surprisingly versatile. Using it, we have resolved several more general open questions, in addition to the specific programming problem we designed it for: the property of 'naturality' in the datatype, the illegality of half-hearted and duplicitous traversals (Gibbons and Oliveira 2009), the correspondence between traversable datatypes and finitary containers (Moggi et al 1999), and more precisely the bijection between traversal strategies for a data structure (shape) and permutations of its elements (Jaskelioff and Rypáček 2012).…”
Section: Discussionmentioning
confidence: 99%
“…Among others, each layer defines a pair of applicative atoms as infix operators, e.g. (·, * ), which, aided by a type traversal [18] utility ' ', allows to form m-input and n-output entities in the sense of (2). The implied composition of a generic pattern which maps function f on a series of structures C, as a typical constructor, is shown in (5).…”
Section: A Layered Process Modelmentioning
confidence: 99%
“…Following our free monad principle, we capture de Bruijn terms in a free monadic structure that is parameterized by namespaces and whose underlying functor covers the regular constructors of sorts. To model the underlying functors we use the universe of finitary containers [1,13,15,20] Finitary containers closely model our specification language: a set of shapes (constructors) with a finite number of fields. We use an indexed [2] version to model mutually recursive types and use a higher-order presentation to obtain better induction principles for which we assume functional extensionality 5 .…”
Section: The Generic Knot Implementationmentioning
confidence: 99%