From HaskellWiki

Jump to: navigation

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