Representing cyclic data structures efficiently in Haskell
Antony Courtney
antony@apocalypse.org
Mon, 07 Jul 2003 11:18:57 -0400
Hi Sarah,
Representing cyclic structures is indeed somewhat tricky in a pure
functional language. The obvious representation (representing the link
structure implicitly in an algebraic data type) doesn't work, because
you can't obvserve cycles.
I recommend checking out two pieces of work in this area:
1. Martin Erwig's work on inductive representations of graphs:
Inductive Graphs and Functional Graph Algorithms, Martin Erwig
Journal of Functional Programming Vol. 11, No. 5, 467-492, 2001
available from:
http://cs.oregonstate.edu/~erwig/papers/abstracts.html#JFP01
2. Koen Claessen and David Sands' work on observable sharing:
Observable Sharing for Functional Circuit Description,
Koen Claessen, David Sands, published at ASIAN '99, in Phuket, Thailand
available from:
http://www.math.chalmers.se/~koen/Papers/obs-shar.ps
Hope that helps,
-Antony
--
Antony Courtney
Grad. Student, Dept. of Computer Science, Yale University
antony@apocalypse.org http://www.apocalypse.org/pub/u/antony