14 citations found. Retrieving documents...
R. S. Bird. Generic programming with relations and functors. Journal of Functional Programming, 6(1):1--28, 1996.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
A Calculational Approach to Program Inversion - Linacre (2003)   (1 citation)  (Correct)

....5.12, the nodes with bold borders indicates its maximum subtree. The node with value under 8 need not be chosen. In general, the subtree need not start from the root. This problem is a generalisation of the famous maximum segment sum [33] problem to rose trees, mentioned as an example in [13], the very first paper that introduced generic # # # # # # # # # # # # # # # # # # # # # # # # # # # # Figure 5.12: An example of the maximum subtree problem. programming. In [76] Sasano and Hu calculated a linear time algorithm for a family of such optimal marking problems ....

R. S. Bird. Generic programming with relations and functors. Journal of Functional Programming, 6(1):1--28, 1996.


Generic Accumulations - Pardo (2002)   (5 citations)  (Correct)

....we show that a downwards accumulation can be written as an afold. A downwards accumulation returns a data structure which is similar to that given as input but that has a label in every node. That makes necessary the introduction of a notion of labelled variant of a datatype. 16 Definition 5. 1 ([6]) The labelled variant of a parameterized datatype DA induced by a bifunctor F is a datatype D A induced by a bifunctor G defined by G(A; Y ) A Theta F (1; Y ) 2 This means that D is defined by the type equation D = A Theta F (1; D A) Note that each node of the labelled variant ....

R.S. Bird, P.F. Hoogendijk, and O. De Moor. Generic Programming with Relations and Functors. Journal of Functional Programming, 6(1):1--28, 1996.


Polytypism and Polytypic Unification - Jansson (1995)   (1 citation)  (Correct)

.... of the theory of lists [1] could be generalised to other datatypes [11] This has theoretical interest as many of the powerful methods of calculating programs from specifications, and thereby proving their correctness, that had been developed for list based programs [5] also could be generalised [2]. The practical interest comes mainly from the prospects of not having to rewrite all those standard functions that are defined for lists in most functional languages for every datatype in a program. After having written a number of versions of the function map on different tree types one realises ....

BIRD R.S., de MOOR O., HOOGENDIJK P. Generic programming with relations and functors. Submitted for publication, 1993.


Polytypic Programming - Jeuring, Jansson (1996)   (51 citations)  (Correct)

....functions. In the language Charity [6] polytypic functions like the catamorphism and map are automatically provided for each user defined datatype. Polytypic functions for specific problems, such as the maximum segment sum problem and the pattern matching problem were first given by Bird et al. [3] and Jeuring [20] Special purpose polytypic functions such as the generalised version of function length and the operator ( can be found in [30, 34, 35, 40, 14] Jay [18] has developed an alternative theory for polytypic functions, in which values are represented by their structure and their ....

....polytypic functions, flatten and zip, which are useful in many other situations too. Function flatten Function flatten takes a value v of a datatype Mu f a, and returns the list containing all elements of type a occurring in v. For example, flatten (Bin (Bin (Leaf 1) Leaf 3) Leaf 7) equals [1,3,7]. This function is the central function in Jay s [18] representation of values of shapely types: a value of a shapely type is represented by its contents, obtained by flattening the value, and its structure, obtained by removing all contents of the value. flatten : Mu f a [a] flatten = cata fl ....

Richard Bird, Oege de Moor, and Paul Hoogendijk. Generic programming with relations and functors. To appear in Journal of Functional Programming, 1996.


A Class of Graph Algorithms - Ravelo (1996)   (Correct)

....and others at Eindhoven University have been exploring the same idea of relation algebraic treatment of datatypes [2] yet not relying on categorical grounds. The level of abstraction is high enough to allow concise reasoning about programs parameterised by datatypes; two examples can be found in [4, 14]. 1.3 Outline The present chapter 1 introduces the goals of this work, and related computer science areas. Chapter 2 briefly presents the main features of BdM s calculus, to proceed with the specification of the class of problems in chapter 3. The relational calculus is extended to include ....

R.S. Bird, P. Hoogendijk, and O. de Moor. Generic programming with relations and functors. Submitted to Journal of Functional Programming, 1993.


Polytypic Pattern Matching - Jeuring (1995)   (24 citations)  (Correct)

....KMP like pattern matching algorithm is the subject of this paper. We call a general algorithm like the general KMP like pattern matching algorithm a polytypic (Webster: having or involving several different types ) algorithm. Sheard [26] calls these algorithms type parametric , and Bird et al. [3] call them generic . An example of a polytypic algorithm is the familiar map function from functional programming. The map function takes a function f and a list x, and applies f to all elements of x. A similar function can be defined on binary trees: the map function on binary trees takes a ....

....algorithms used in Squiggol are general recursive functions such as catamorphisms, paramorphisms, maps, etc. The polytypic pattern matching (PPM) algorithm described in this paper is an example of a special purpose polytypic algorithm. Other special purpose polytypic algorithms can be found in [21, 3, 26, 15]. Polytypic algorithms should not be confused with parametric polymorphic algorithms, such as length : a] Int, which have equal behaviour on different types, or ad hoc polymorphic algorithms, such as defined on both Int and Float, definitions of which for different datatypes may be ....

[Article contains additional citation context not shown here]

Richard Bird, Oege de Moor, and Paul Hoogendijk. Generic programming with relations and functors. Submitted for publication, 1993.


Universal Regular Path Queries - de Moor, Lacey, Van Wyk (2001)   (1 citation)  Self-citation (De moor)   (Correct)

....in particular that of query languages for semi structured data. 2 Speci cation and derivation We shall weave our speci cation of the problem in hand and the derivation with a review of some standard notions from the calculus of relations and universal algebra. Readers familiar with any of [1, 7 9, 11 15, 26 29, 32, 36, 57] can safely skim subsections 2.1 and 2.2, and pass quickly on to Section 2.3, which summarises the calculation leaving out all the introductory material. 2.1 Speci cation Relations We write R : X Y to indicate that R is a subset of X Y . This slightly unusual notation (with arrows pointing ....

R. S. Bird, P. F. Hoogendijk, and O. De Moor. Generic programming with relations and functors. Journal of Functional Programming, 6(1):to appear, 1996.


Universal Regular Path Queries - de Moor, Lacey, Van Wyk (2001)   (1 citation)  Self-citation (De moor)   (Correct)

....elds, in particular that of query languages for semi structured data. 2 Notation Before we embark upon a formal speci cation of our problem, and the derivation of an algorithm, we rst review some standard notions from the calculus of relations and universal algebra. Readers familiar with any of [1, 7 9, 12 16, 26 29, 32, 37, 57] can skim this section, and then skip to Section 3. 2.1 Relations We write R : A B to indicate that R is a subset of A B . This slightly unusual notation (with arrows pointing backwards) makes it a little easier to read formulae involving 4 composition, de ned below. The predicate aRb is ....

R. S. Bird, P. F. Hoogendijk, and O. De Moor. Generic programming with relations and functors. Journal of Functional Programming, 6(1):to appear, 1996.


Universal Regular Path Queries - de Moor, Lacey, Van Wyk (2001)   (1 citation)  Self-citation (De moor)   (Correct)

....elds, in particular that of query languages for semi structured data. 2 Notation Before we embark upon a formal speci cation of our problem, and the derivation of an algorithm, we rst review some standard notions from the calculus of relations and universal algebra. Readers familiar with any of [1, 7 9, 12 16, 26 29, 32, 37, 57] can safely skim this section, and pass quickly on to Section 3. 4 2.1 Relations We write R : A B to indicate that R is a subset of A B . This slightly unusual notation (with arrows pointing backwards) makes it a little easier to read formulae involving composition, de ned below. The ....

R. S. Bird, P. F. Hoogendijk, and O. De Moor. Generic programming with relations and functors. Journal of Functional Programming, 6(1):to appear, 1996.


Nested Datatypes - Bird, Meertens (1998)   (44 citations)  Self-citation (Bird)   (Correct)

....evidence is emerging (e.g. 3, 18, 19] of their usefulness in functional data structure design. A brief illustration of what they can offer is given in Section 2. Regular datatypes, on the other hand, are the bread and butter of functional programming. Recent work on polytypic programming (e.g. [2, 9, 15]) has systematised the mathematics of program construction with regular datatypes by focusing on a small number of generic operators, such as fold , that can be defined for all such types. The basic idea, reviewed below, is to define a regular datatype as an initial object in a category of F ....

R. S. Bird, P. F. Hoogendijk, and O. De Moor. Generic programming with relations and functors. Journal of Functional Programming, 6(1):1--28, 1996.


Container Types Categorically - Hoogendijk, de Moor (2000)   (8 citations)  Self-citation (Hoogendijk De moor)   (Correct)

....and their derivations are said to be polytypic. To carry out polytypic program derivations we need to appeal to properties that are shared by all container types. This paper does not go into examples of polytypic program derivation, and the reader is referred to e.g. Backhouse et al. 1993; Bird et al. 1996; Doornbos, 1996; Hoogendijk Backhouse, 1997; Jeuring, 1995; Meertens, 1996) for such examples and a more in depth motivation of polytypism. In particular, Bird et al. 1996; Bird De Moor, 1996) go into applications that motivated the theory presented here. Because our interest is in a ....

....does not go into examples of polytypic program derivation, and the reader is referred to e.g. Backhouse et al. 1993; Bird et al. 1996; Doornbos, 1996; Hoogendijk Backhouse, 1997; Jeuring, 1995; Meertens, 1996) for such examples and a more in depth motivation of polytypism. In particular, (Bird et al. 1996; Bird De Moor, 1996) go into applications that motivated the theory presented here. Because our interest is in a definition that is useful in specification, the class of container types considered here may be somewhat too liberal for those whose primary interest is in executable code. For ....

[Article contains additional citation context not shown here]

Bird, R. S., Hoogendijk, P. F., & De Moor, O. (1996). Generic programming with relations and functors. Journal of functional programming, 6(1), 1--28.


A Generic Program for Sequential Decision Processes - de Moor (1995)   (6 citations)  Self-citation (De moor)   (Correct)

....with similarities in the derivation process, and not with a single generic program. There has recently been a surge of interest in polytypic programming. Initially most of this work was concerned with generalising combinators such as fold and zip to arbitrary data types [3] Starting with [9], more algorithmic problems have been considered in a polytypic setting. The most spectacular example so far is Jeuring s polytypic pattern matching algorithm [17] Acknowledgements Much of the work reported here was done in collaboration with Richard Bird, and I am grateful to him for his ....

R. S. Bird, P. Hoogendijk, and O. de Moor. Generic programming with relations and functors. Submitted to Journal of Functional Programming, 1993.


An Exercise in Polytypic Program Derivation: repmin - de Moor (1996)   Self-citation (De moor)   (Correct)

....relations alike. This experience gives good hope that at least some of the polytypic programs that have recently appeared in the literature [8, 9] can be significantly improved and shortened by deriving them in a rigorous manner. The first non trivial examples of polytypic program derivation were [2, 5], and several more can be found in [4] There has been a lot of work that provides us with the plumbing for writing polytypic programs, e.g. 1, 11] Such plumbing plays the same role in polytypic programming that more elementary control structures (e.g. while loops) do in the wp calculus. Now ....

R. S. Bird, P. F. Hoogendijk, and O. De Moor. Generic programming with relations and functors. Journal of Functional Programming, 6(1):1-- 28, 1996.


What is a Data Type? - Hoogendijk, de Moor (1996)   Self-citation (Hoogendijk De moor)   (Correct)

....Such type parametric programs and their derivations are said to be polytypic. To carry out polytypic program derivations we need to appeal to properties that are shared by all data types. This paper does not go into examples of polytypic program derivation, and the reader is referred to e.g. [2, 4, 6, 13, 16] for such examples and a more in depth motivation of polytypism. Because our interest is in a definition that is useful in specification, the class of data types considered here may be somewhat too liberal for those whose primary interest is in executable code. For example, possibly infinite sets ....

R. S. Bird, P. F. Hoogendijk, and O. De Moor. Generic programming with relations and functors. Journal of Functional Programming, 6(1):1-- 28, 1996.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC