# Research papers/Data structures

From HaskellWiki

## Contents

- Functional pearl: Trouble shared is trouble halved
- Richard Bird and Ralf Hinze. In Johan Jeuring, editor, Proceedings of the ACM SIGPLAN 2003 Haskell Workshop, Uppsala, Sweden, August 28, 2003, pp 1-6.

- Manufacturing datatypes
- Ralf Hinze. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, September 1999, pp. 1-16.

- Designing Data Structures
- A. Reid, Proceedings of the 1989 Glasgow Functional Programming Workshop, Workshops in Computing series, Springer Verlag, pp 170-181, 1989.

- Google's MapReduce Programming Model -- Revisited
- Ralf Lämmel, Draft; Online since 2 January, 2006; 26 pages

- A probabilistic approach to the problem of automatic selection of data representations
- Tyng-Ruey Chuang and Wen L. Hwang, In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming, pages 190-200. Philadephia, Pennsylvania, USA, May 1996.

## Lists

- The concatenate vanishes
- Philip Wadler. Note. December 1987

- Purely Functional Random-Access Lists
- Chris Okasaki. Functional Programming Languages and Computer Architecture, June 1995, pages 86-95.

- Polymorphic string matching
- Richard S. Bird. Proceedings of the 2005 ACM SIGPLAN workshop on Haskell, Tallinn, Estonia. 110 - 115, 2005 ISBN 1-59593-071-X

## Arrays

- An Approach to Fast Arrays in Haskell
- Manuel M. T. Chakravarty and Gabriele Keller. In Johan Jeuring and Simon Peyton Jones, editors, lecture notes for The Summer School and Workshop on Advanced Functional Programming 2002. LNCS 2638, Springer-Verlag, pages 27-58, 2003.

- Functional Array Fusion
- Manuel M. T. Chakravarty and Gabriele Keller. In Xavier Leroy, editor, Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming, ACM Press, pp205-216, 2001.

- Bootstrapping One-sided Flexible Arrays
- Ralf Hinze. In Simon Peyton Jones, editor, Proceedings of the 2002 International Conference on Functional Programming, Pittsburgh, PA, USA, October 4-6, 2002, pp. 2-13.

- Numerical Representations as Higher-Order Nested Datatypes
- Ralf Hinze. Technical Report IAI-TR-98-12, Institut fr Informatik III, Universitt Bonn, December 1998.

- A new array operation
- Philip Wadler. Proceedings of the Workshop on Graph Reduction, Santa Fe, New Mexico, J. Fasel and R. Keller, editors, Springer-Verlag, October 1986.

- A randomized implementation of multiple functional arrays
- Tyng-Ruey Chuang, In Proceedings of the 1994 ACM Conference on Lisp and Functional Programming, pages 173-184. Orlando, Florida, USA, June 1994.

## Queues

- A Simple Implementation Technique for Priority Search Queues
- Ralf Hinze. In Xavier Leroy, editor, Proceedings of the 2001 International Conference on Functional Programming, Firenze, Italy, September 3-5, 2001.

- Simple and Efficient Purely Functional Queues and Deques
- Chris Okasaki. Journal of Functional Programming, 5(4):583-592, October 1995.

- Optimal Purely Functional Priority Queues
- Gerth Stlting Brodal and Chris Okasaki, Journal of Functional Programming, 6(6), December 1996.

## Trees

- Constructing red-black trees
- Ralf Hinze. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, September 1999, pp. 89-99. The proceedings appear as a technical report of Columbia University, CUCS-023-99.

- Perfect trees and bit-reversal permutations
- Ralf Hinze. Technical Report IAI-TR-99-4, Institut fr Informatik III, Universitt Bonn, March 1999.

## Tries

- Generalizing Generalized Tries
- Ralf Hinze. Technical Report IAI-TR-98-11, Institut fr Informatik III, Universitt Bonn, November 1998.

## Graphs

- Structuring Depth First Search Algorithms in Haskell
- David King and John Launchbury. Proc. ACM Principles of Programming Languages, San Francisco, 1995.

- Graph Algorithms with a Functional Flavour
- John Launchbury, Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques, Bastad, Sweden, LNCS 925,p. 308-331, 1995 (editors: J. Jeuring, E. Meijer).

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

- Random Access to Abstract Data Types
- Martin Erwig. 8th Int. Conf. on Algebraic Methodology and Software Technology (AMAST 2000), LNCS 1816 , 135-149, 2000

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

- Functional Programming with Graphs
- Martin Erwig. 2nd ACM SIGPLAN Int. Conf. on Functional Programming (ICFP'97), 52-65, 1997

## Collections

- Bulk types with class
- SL Peyton Jones, Electronic proceedings of the 1996 Glasgow Functional Programming Workshop, Ullapool, July 1996.

- Strongly typed heterogeneous collections
- Oleg Kiselyov, Ralf Lämmel, and Keean Schupke. Haskell '04: Proceedings of the ACM SIGPLAN workshop on Haskell, Snowbird, Utah, USA, 96--107, 2004

## Matrices

- Sparse matrix representations in a functional language
- P.W. Grant, J.A. Sharp, M.F. Webster and X. Zhang, Journal of Functional Programming, 6(1):143-170, January 1996.

## Binary

- Heap Compression and Binary I/O in Haskell
- Malcolm Wallace and Colin Runciman, Proceedings of the 2nd ACM Haskell Workshop, Amsterdam, the Netherlands, June 1997.

- The Bits Between The Lambdas: Binary Data in a Lazy Functional Language
- Malcolm Wallace and Colin Runciman. proceedings of the International Symposium on Memory Management, Vancouver, Canada, Oct 1998.

## Nested Datatypes

- Finger Trees: A Simple General-purpose Data Structure
- Ralf Hinze and Ross Paterson, Journal of Functional Programming

- De Bruijn Notation as a Nested Datatype
- Richard Bird and Ross Paterson. Journal of Functional Programming, vol. 9(1), pp. 77-91, 1999.

- Generalised Folds for Nested Datatypes
- Richard Bird and Ross Paterson, Formal Aspects of Computing, vol. 11(2), pp. 200-222, 1999.

- Polytypic Functions Over Nested Datatypes
- Ralf Hinze. In Rafael Dueire Lins, editor, 3rd Latin-American Conference on Functional Programming (CLaPF'99), March 1999.

## Probablistic Programming

- Probabilistic Functional Programming in Haskell
- Martin Erwig and Steve Kollmansberger. Journal of Functional Programming, Vol. 16, No. 1, 21-34, 2006