Although the principles behind generic programming are already well understood, this style of programming is not widespread and examples of applications are rarely found in the literature. This paper addresses this shortage by presenting a new method, based on generic programming, to automatically visualize recursion trees of functions written in Haskell. Crucial to our solution is the fact that almost any function definition can be automatically factorized into the composition of a fold after an unfold of some intermediate data structure that models its recursion tree. By combining this technique with an existing tool for graphical debugging, and by extensively using Generic Haskell, we achieve a rather concise and elegant solution to this...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...
One style of functional programming is based purely on recursive equations. Such equations are easy ...
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursi...
AbstractAlthough the principles behind generic programming are already well understood, this style o...
This paper describes a generic method to derive an animation from a recursive definition, with the o...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
This paper explores some ideas concerning the time-analysis of functional programs defined by instan...
This paper describes a new approach to generic functional programming, which allows us to define fun...
This thesis is an exploration -- an exploration of a language extension of the functional programmi...
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
A generic function is defined by induction on the structure of types. The structure of a data type ...
Generic programming for mutually recursive families of datatypes is hard. On the other hand, most in...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...
One style of functional programming is based purely on recursive equations. Such equations are easy ...
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursi...
AbstractAlthough the principles behind generic programming are already well understood, this style o...
This paper describes a generic method to derive an animation from a recursive definition, with the o...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
This paper explores some ideas concerning the time-analysis of functional programs defined by instan...
This paper describes a new approach to generic functional programming, which allows us to define fun...
This thesis is an exploration -- an exploration of a language extension of the functional programmi...
This thesis aims at making Datatype Generic Programming more useful in practice. We extend the fixed...
textabstractWe describe a design pattern for writing programs that traverse data structures built fr...
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a s...
A generic function is defined by induction on the structure of types. The structure of a data type ...
Generic programming for mutually recursive families of datatypes is hard. On the other hand, most in...
Many functions can be dened completely generically for all datatypes. Examples include pretty printe...
One style of functional programming is based purely on recursive equations. Such equations are easy ...
In functional programming, fold is a standard operator that encapsulates a simple pattern of recursi...