MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Inductive Graphs and Functional Graph Algorithms (2001) [6 citations — 2 self]

by Martin Erwig
Add To MetaCart

Abstract:

We propose a new style of writing graph algorithms in functional languages which is based on an alternative view of graphs as inductively defined data types. We show how this graph model can be implemented efficiently, and then we demonstrate how graph algorithms can be succinctly given by recursive function definitions based on the inductive graph view. We also regard this as a contribution to the teaching of algorithms and data structures in functional languages since we can use the functional-style graph algorithms instead of the imperative algorithms that are dominant today. Keywords: Graphs in Functional Languages, Recursive Graph Algorithms, Teaching Graph Algorithms in Functional Languages

Citations

404 The Science of Programming – Gries - 1981
156 Purely functional data structures – Okasaki - 1998
104 Elements of Functional Programming – Reade - 1993
45 Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space – Fegaras, Sheard - 1996
33 The aggregate update problem in functional programming languges – Hudak, Bloss - 1985
28 Uniqueness typing for functional languages with graph rewriting semantics – BARENDSEN, SMETSERS - 1996
28 Fully persistent arrays – Dietz - 1989
26 Functional Programming with Graphs – Erwig - 1997
25 Pattern Matching with Abstract Data Types – Burton, Cameron - 1993
24 Simple and efficient purely functional queues and deques – Okasaki - 1995
23 Real-time queue operations – Hood, Melville - 1981
20 An efficient representation for sparse sets – Briggs, Torczon - 1993
20 Structuring depth-first search algorithms in Haskell – King, Launchburry - 1995
19 Abstract syntax and semantics of visual languages – Erwig - 1998
19 Breadth-first numbering: lessons from a small exercise in algorithm design – Okasaki - 2000
17 Order-of-evaluation analysis for destructive updates in strict functional languages with flat aggregates – Sastry, Clinger - 1992
14 An efficient functional implementation of FIFO queues – BURTON - 1982
12 An efficiency comparison of some representations of purely functional arrays – Aasa, Holmstrom, et al. - 1988
11 Manipulating multilinked data structures in a pure functional language – Burton, Yang - 1990
11 A new method for functional arrays – O’Neill, Burton - 1997
11 ML for the Working Programmer (2nd ed – Paulson - 1996
10 Graph algorithms = iteration + data structures? The structure of graph algorithms and a style of programming – Erwig - 1992
10 Active Patterns – Erwig - 1996
10 Algorithms: a functional programming approach – Rabhi, Lapalme - 1999
9 Graph algorithms in a lazy functional programming language – Kashiwagi, Wise - 1991
8 Graph Algorithms with a Functional Flavour – Launchbury - 1995
7 Abstract Data Types in Standard ML – Harrison - 1993
6 Functional Programming and Graph Algorithms – King - 1996
4 An Initial Algebra Approach to Directed Acyclic Graphs – Gibbons - 1995
2 Fully Persistent Graphs -- Which One to Choose – Erwig - 1997
2 A Functional Homage to Graph Reduction – Erwig - 1998
2 Random Access to Abstract Data Types – Erwig - 2000
2 Efficient Graph Algorithms Using Lazy Monolithic Arrays – Johnsson - 1998
2 A New Look at Patternmatching – GOSTANZA, PEfiA, et al. - 1996
1 Inductive Graphs and Functional Graph Algorithms 25 – Bird - 1998
1 Real-Time Deques, Multihead Turing – Chuang, Goldberg - 1993