Research papers/Data structures

From HaskellWiki
Jump to navigation Jump to search
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 Alternative Link
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.
An Overview of Edison
Chris Okasaki. Haskell Workshop 2000. September 2000
Benchmarking Purely Functional Data Structures
Graeme E. Moss. PhD. Thesis. York University. YCST-2000-01. July 1999.

Lists

See also papers on list fusion

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
The Under-Appreciated Unfold
Jeremy Gibbons and Geraint Jones, Proceedings 3rd ACM SIGPLAN Int. Conf. on Functional Programming, ICFP'98, 34(1), ACM Press, New York, 273--279, 1998
When is a function a fold or an unfold?
Jeremy Gibbons, Graham Hutton and Thorsten Altenkirch (2001). In Coalgebraic Methods in Computer Science, April 2001 (Volume 44.1 of Electronic Notes in Theoretical Computer Science).
Program optimisation, naturally
Richard Bird, Jeremy Gibbons, and Geraint Jones. In J. W. Davies, A. W. Roscoe, and J. C. P. Woodcock, editors, Millenial Perspectives in Computer Science. Palgrave, 2000.
Concatenate, Reverse and Map Vanish For Free
Janis Voigtländer, International Conference on Functional Programming, Proceedings, vol. 37(9) of SIGPLAN Notices, pp. 14-25, ACM Press, 2002.


Numerics

Enumerating the rationals
Jeremy Gibbons, David Lester, and Richard Bird. Journal of Functional Programming, 16(3):281-292, 2004.

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.
Rewriting Haskell Strings
Duncan Coutts, Don Stewart and Roman Leshchinskiy. PADL 2007.

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.
Functional Pearl: A fresh look at binary search trees
Ralf Hinze. Journal of Functional Programming. 2001
Upwards and Downwards Accumulations on Trees
Jeremy Gibbons (1993). In LNCS 669: Mathematics of Program Construction, ed. R. S. Bird, C. C. Morgan and J. C. P. Woodcock, Springer-Verlag, p. 122-138. Revised version appears in Proceedings of the Massey Functional Programming Workshop, ed. E. Ireland and N. Perry, 1992.
Efficient Parallel Algorithms for Tree Accumulations
Jeremy Gibbons, Wentong Cai and David Skillicorn (1994). Science of Computer Programming 23 p1-18.
Linear-Time Breadth-First Tree Algorithms: An Exercise in the Arithmetic of Folds and Zips
Geraint Jones and Jeremy Gibbons (1993). University of Auckland Computer Science Report No. 71, and IFIP Working Group 2.1 working paper 705 WIN-2.
Polytypic Downwards Accumulations
Jeremy Gibbons (1998). In LNCS 1422, Proceedings of Mathematics of Program Construction, Marstrand, Sweden, June 1998.
Diets for Fat Sets
Martin Erwig. Journal of Functional Programming, Vol. 8, No. 6, 627-632, 1998.
Asymptotic Improvement of Computations over Free Monads
Janis Voigtländer. Mathematics of Program Construction (MPC'08), Proceedings, LNCS 5133:388-403, Springer-Verlag, 2008.
Strictification of Circular Programs
Joao Paulo Fernandes, Joao Saraiva, Daniel Seidel, and Janis Voigtländer. Partial Evaluation and Program Manipulation (PEPM'11), Proceedings. ACM Press, 2011.


Maps

Fast Mergeable Integer Maps
Chris Okasaki and Andy Gill, Workshop on ML, September 1998, pages 77-86.

Tries

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

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.

Heaps

Functional Pearl: Explaining binomial heaps
Ralf Hinze. Journal of Functional Programming. 9(1). January 1999.

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.
Disciplined, efficient, generalised folds for nested datatypes
Clare Martin, Jeremy Gibbons and Ian Bayley (2004). Formal Aspects of Computing 16(1):19-35, 2004.
Nested Datatypes
Lambert Meertens and Richard Bird. Mathematics of Program Construction, MPC'98 (Johan Jeuring, editor), LNCS 1422, pp. 52--67, 1998.
Representing cyclic structures as nested datatypes
N. Ghani, M. Hamana, T. Uustalu, V. Vene. In H. Nilsson, ed., Proc. of 7th Symp. on Trends in Functional Programming, TFP 2006 (Nottingham, Apr. 2006), pp. 173-188. Univ. of Nottingham, 2006.
Iteration schemes for higher-order and nested datatypes
A. Abel, R. Matthes, T. Uustalu. Theor. Comput. Sci., v. 333, n. 1-2, pp. 3-66, 2005. - ( Elsevier Science) // Conf. version Generalized iteration and coiteration for higher-order nested datatypes in A. D. Gordon, ed., Proc. of 6th Int. Conf. on Foundations of Software Science and Computation Structures, FoSSaCS 2003 (Warsaw, Apr. 2003), v. 2620 of Lect. Notes in Comput. Sci., pp. 54-69. Springer-Verlag, 2003.

Systems-level Data Structures

Strongly Typed Memory Areas -- Programming Systems-Level Data Structures in a Functional Language
Iavor S. Diatchki (OGI) and Mark P. Jones (Portland State University), Haskell Workshop 2006

Probablistic Programming

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

See also Research papers/Generics