Functional Programming with Graphs


Project Description

Taking an inductive view of graphs facilitates the recursive definition of graph algorithms. One advantage of this approach over others is that the design of algorithms can proceed in a more declarative fashion; in particular, we do not have to care about node markings that are inherent in the imperative style of graph algorithms and that complicate the reasoning about programs considerably. The convenient formulation of recursive graph algorithms builds on a special kind of pattern matching that allows to extract particular representations from an abstract data type.

Related Publications

Inductive Graphs and Functional Graph Algorithms, Martin Erwig
Journal of Functional Programming Vol. 11, No. 5, 467-492, 2001

Pattern Guards and Transformational Patterns, Martin Erwig and Simon Peyton Jones
Electronic Notes in Theoretical Computer Science, Vol. 41, No. 1, 12.1-12.27, 2001

Fully Persistent Graphs - Which One to Choose?, Martin Erwig
9th Int. Workshop on Implementation of Functional Languages, LNCS 1467, 123-140, 1997

Functional Programming with Graphs, Martin Erwig
2nd ACM SIGPLAN Int. Conf. on Functional Programming, 52-65, 1997

Active Patterns, Martin Erwig
8th Int. Workshop on Implementation of Functional Languages, LNCS 1268, 21-40, 1996

Graph Algorithms = Iteration + Data Structures? The Structure of Graph Algorithms and a Corresponding Style of Programming, Martin Erwig
18th Int. Workshop on Graph Theoretic Concepts in Computer Science, LNCS 657, 277-292, 1992

Software

The Functional Graph Library

Participating Researchers

Martin Erwig

last change: March 04, 2012 Martin Erwig  erwig@eecs.oregonstate.edu