## Polynomial Polymorphism (1995)

Venue: | Proceedings of the Eighteenth Australasian Computer Science Conference: Glenelg, South Australia 1--3 February |

Citations: | 12 - 4 self |

### BibTeX

@INPROCEEDINGS{Jay95polynomialpolymorphism,

author = {C. Barry Jay},

title = {Polynomial Polymorphism},

booktitle = {Proceedings of the Eighteenth Australasian Computer Science Conference: Glenelg, South Australia 1--3 February},

year = {1995},

pages = {237--243},

publisher = {A.C.S. Communications}

}

### OpenURL

### Abstract

Inductive types, such as lists and trees, have a uniform semantic description, both of the types themselves and the folding algorithms that construct homomorphisms out of them. Though implementations have been able to give a uniform description of the types, this has not been true of folding, since there has not been a uniform mechanism for finding the sub-expressions (the sub-lists or sub-trees, etc.) to which recursion applies. Polynomial types overcome this problem by distinguishing the indeterminate of the polynomial (on which the recursion occurs) from its coefficients. Further, this uniformity is recognised by the type system, which is able to treat fld as a (shape) polymorphic constant of the -calculus. These ideas have been implemented in a language P2. Key words types, polynomials, polymorphism, folding, shape, P2. 1 Introduction The use of initial algebras to describe inductive data types, such as lists and trees, produces a uniform method for describing a large class of ...

### Citations

1566 | The Definition of Standard ML
- Milner, Tofte, et al.
- 1990
(Show Context)
Citation Context ...lass of types (ADJ, [4]) and specifying their programs (e.g. Meijer et al, [9]). Till now, however, this uniformity has not extended to the algorithms used for implementation. In languages such as ML =-=[10]-=- and Haskell [5], many algorithms are defined by pattern-matching. For example, summation of a list of integers is given by lsum [ ] = 0 lsum (h :: t) = h + (lsum t) while summation over a binary tree... |

1312 | Constructive functional programming
- Bird
- 1989
(Show Context)
Citation Context ...lgebra B for the tree functor H is given by a function A!B and a binary operation B!B!B. For example tsum = fold h where h is given by the identity and +. The Bird-Meertens formalism(Bird and Wadler, =-=[1]-=-) supports a fold over lists called foldr whose type is (A!B!B)!B![A]!B : so that lsum = foldr + 0. Similar combinators could be introduced for other inductive types, each with their own evaluation me... |

302 | Functional programming with bananas, lenses, envelopes and barbed wire
- Meijer, Fokkinga, et al.
- 1991
(Show Context)
Citation Context ...nitial algebras to describe inductive data types, such as lists and trees, produces a uniform method for describing a large class of types (ADJ, [4]) and specifying their programs (e.g. Meijer et al, =-=[9]-=-). Till now, however, this uniformity has not extended to the algorithms used for implementation. In languages such as ML [10] and Haskell [5], many algorithms are defined by pattern-matching. For exa... |

225 | Report on programming language Haskel a non-strict, purely functional language version 1.2
- Hudak, Jones, et al.
- 1992
(Show Context)
Citation Context ...J, [4]) and specifying their programs (e.g. Meijer et al, [9]). Till now, however, this uniformity has not extended to the algorithms used for implementation. In languages such as ML [10] and Haskell =-=[5]-=-, many algorithms are defined by pattern-matching. For example, summation of a list of integers is given by lsum [ ] = 0 lsum (h :: t) = h + (lsum t) while summation over a binary tree of integers is ... |

53 | The Implementation of the Gofer Functional Programming System
- Jones
- 1994
(Show Context)
Citation Context ...lementation of P2 is intended to demonstrate the viability of the ideas in this paper, and provide a vehicle for their further exploration. An interpreter for P2 has been constructed in Gofer (Jones, =-=[8]-=-) though any functional language would have sufficed, since no special use has been made of its type classes. The code is available by anonymous ftp from ftp.socs.uts.edu.au in the directory users/cbj... |

34 | Shapely types and shape polymorphism
- Jay, Cockett
- 1994
(Show Context)
Citation Context ... and then apply f. Hence the task is to construct a type system which supports the location of the recursive sub-expressions. A clue to the solution is provided by the shapely types (Jay and Cockett, =-=[7]-=- and Jay, [6]). They support the separation of data (e.g. the values at the leaves of a tree) from shape (e.g. the underlying, unlabelled tree), which can then be manipulated separately. For example, ... |

22 | About Charity
- Cockett, Fukushima
- 1992
(Show Context)
Citation Context ...nators could be introduced for other inductive types, each with their own evaluation mechanism, but their underlying unity would not be revealed this way. The language Charity (Cockett and Fukushima, =-=[2]-=-) takes a different approach to the problem. There fold applies to arbitrary inductive types, but is treated as a term constructor, rather than as a term in its own right. That is, an algorithm for fo... |

1 |
Shapely types: Exploiting parseability
- Jay
- 1995
(Show Context)
Citation Context ...ly f. Hence the task is to construct a type system which supports the location of the recursive sub-expressions. A clue to the solution is provided by the shapely types (Jay and Cockett, [7] and Jay, =-=[6]-=-). They support the separation of data (e.g. the values at the leaves of a tree) from shape (e.g. the underlying, unlabelled tree), which can then be manipulated separately. For example, an operation ... |