• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Datatype Laws without Signatures (1996)

by Maarten M. Fokkinga
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 18
Next 10 →

Generic programming: An introduction

by Patrik Jansson, Johan Jeuring, Lambert Meertens - 3rd International Summer School on Advanced Functional Programming , 1999
"... ..."
Abstract - Cited by 81 (19 self) - Add to MetaCart
Abstract not found

Calculate Polytypically!

by Lambert Meertens - In PLILP'96, volume 1140 of LNCS , 1996
"... A polytypic function definition is a function definition that is parametrised with a datatype. It embraces a class of algorithms. As an example we define a simple polytypic "crush" combinator that can be used to calculate polytypically. The ability to define functions polytypically adds another leve ..."
Abstract - Cited by 41 (3 self) - Add to MetaCart
A polytypic function definition is a function definition that is parametrised with a datatype. It embraces a class of algorithms. As an example we define a simple polytypic "crush" combinator that can be used to calculate polytypically. The ability to define functions polytypically adds another level of flexibility in the reusability of programming idioms and in the design of libraries of interoperable components.

Monadic Maps and Folds for Arbitrary Datatypes

by Maarten Fokkinga - Memoranda Informatica, University of Twente , 1994
"... Each datatype constructor comes equiped not only with a so-called map and fold (catamorphism), as is widely known, but, under some condition, also with a kind of map and fold that are related to an arbitrary given monad. This result follows from the preservation of initiality under lifting from the ..."
Abstract - Cited by 15 (0 self) - Add to MetaCart
Each datatype constructor comes equiped not only with a so-called map and fold (catamorphism), as is widely known, but, under some condition, also with a kind of map and fold that are related to an arbitrary given monad. This result follows from the preservation of initiality under lifting from the category of algebras in a given category to a certain other category of algebras in the Kleisli category related to the monad.

Generic Accumulations

by Alberto Pardo , 2002
"... which are eventually used in later stages of the computation. We present a generic definition of accumulations, achieved by the introduction of a new recursive operator on inductive types. We also show that the notion of downwards accumulation developed by Gibbons is subsumed by our notion of acc ..."
Abstract - Cited by 9 (0 self) - Add to MetaCart
which are eventually used in later stages of the computation. We present a generic definition of accumulations, achieved by the introduction of a new recursive operator on inductive types. We also show that the notion of downwards accumulation developed by Gibbons is subsumed by our notion of accumulation.

Making Functionality More General

by Graham Hutton - In Functional Programming, Glasgow 1991, Workshops in computing , 1992
"... The notion of functionality is not cast in stone, but depends upon what we have as types in our language. With partial equivalence relations (pers) as types we show that the functional relations are precisely those satisfying the simple equation f = f ffi f [ ffi f , where " [ " is the relation ..."
Abstract - Cited by 7 (1 self) - Add to MetaCart
The notion of functionality is not cast in stone, but depends upon what we have as types in our language. With partial equivalence relations (pers) as types we show that the functional relations are precisely those satisfying the simple equation f = f ffi f [ ffi f , where " [ " is the relation converse operator. This article forms part of "A calculational theory of pers as types" [1]. 1 Introduction In calculational programming, programs are derived from specifications by a process of algebraic manipulation. Perhaps the best known calculational paradigm is the Bird--Meertens formalism, or to use its more colloquial name, Squiggol [2]. Programs in the Squiggol style work upon trees, lists, bags and sets, the so--called Boom hierarchy. The framework was uniformly extended to cover arbitrary recursive types by Malcolm in [3], by means of the F--algebra paradigm of type definition, and resulting catamorphic programming style. More recently, Backhouse et al [4] have made a further ...

Functional polytypic programming | use and implementation

by Patrik Jansson , 1997
"... Abstract Many functions have to be written over and over again for different datatypes, either because datatypes change during the development of programs, or because functions with similar functionality are needed on different datatypes. Examples of such functions are pretty printers, pattern match ..."
Abstract - Cited by 5 (2 self) - Add to MetaCart
Abstract Many functions have to be written over and over again for different datatypes, either because datatypes change during the development of programs, or because functions with similar functionality are needed on different datatypes. Examples of such functions are pretty printers, pattern matchers, equality functions, unifiers, rewriting functions, etc. Such functions are called polytypic functions. A polytypic function is a function that is defined by induction on the structure of user-defined datatypes. This thesis introduces polytypic functions, shows how to construct and reason about polytypic functions and describes the implementation of the polytypic programming system PolyP. PolyP extends a functional language (a subset of Haskell) with a construct for writing polytypic functions. The extended language type checks definitions of polytypic functions, and infers the types of all other expressions. Programs in the extended language are translated to Haskell.

A Calculational Theory of Pers as Types

by Graham Hutton, Ed Voermans , 1992
"... We present a programming paradigm based upon the notion of binary relations as programs, and partial equivalence relations (pers) as types. Our method is calculational , in that programs are derived from specifications by algebraic manipulation. Working with relations as programs generalises the fu ..."
Abstract - Cited by 5 (2 self) - Add to MetaCart
We present a programming paradigm based upon the notion of binary relations as programs, and partial equivalence relations (pers) as types. Our method is calculational , in that programs are derived from specifications by algebraic manipulation. Working with relations as programs generalises the functional paradigm, admiting non--determinism and the use of relation converse. Working with pers as types, we have a more general notion than normal of what constitutes an element of a type; this leads to a more general class of functional relations, the so--called difunctional relations. Our basic method of defining types is to take the fixpoint of a relator , a simple strengthening of the categorical notion of a functor. Further new types can be made by imposing laws and restrictions on the constructors of other types. Having pers as types is fundamental to our treatment of types with laws. Contents 1 Introduction 2 2 Relational calculus 4 2.1 Powerset lattice structure : : : : : : : : :...

On the construction of free algebras for equational systems

by Marcelo Fiore, Chung-Kil Hur - IN: SPECIAL ISSUE FOR AUTOMATA, LANGUAGES AND PROGRAMMING (ICALP 2007). VOLUME 410 OF THEORETICAL COMPUTER SCIENCE , 2009
"... The purpose of this paper is threefold: to present a general abstract, yet practical, notion of equational system; to investigate and develop the finitary and transfinite construction of free algebras for equational systems; and to illustrate the use of equational systems as needed in modern applica ..."
Abstract - Cited by 5 (4 self) - Add to MetaCart
The purpose of this paper is threefold: to present a general abstract, yet practical, notion of equational system; to investigate and develop the finitary and transfinite construction of free algebras for equational systems; and to illustrate the use of equational systems as needed in modern applications.

Calculate Categorically!

by Maarten Fokkinga - Formal Aspects of Computing , 1992
"... this paper is an alternative to diagram chasing (4). The use of a standard notation for various unique arrows obviates in some cases the need for pictures for the purpose of naming (2). The need for a pictorial overview of the typing (1) is decreased to some extend by a consistent notation, in parti ..."
Abstract - Cited by 4 (0 self) - Add to MetaCart
this paper is an alternative to diagram chasing (4). The use of a standard notation for various unique arrows obviates in some cases the need for pictures for the purpose of naming (2). The need for a pictorial overview of the typing (1) is decreased to some extend by a consistent notation, in particular f ; g for composition (so that f : a ! b g: b ! c ) f

Random Access to Abstract Data Types

by Martin Erwig, Praktische Informatik Iv - 8th Int. Conf. on Algebraic Methodology and Software Technology. LNCS 1816 , 2000
"... ..."
Abstract - Cited by 2 (1 self) - Add to MetaCart
Abstract not found
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University