Abstract
This paper discusses our entry to the 2012 ICFP Programming Contest, written entirely in Haskell. Our solution uses many features of Haskell: pure immutable data structures, laziness, higher-order functions, concurrency, and exception handling. Each of these features plays an essential part in our overall solution, and we demonstrate how these key elements can be composed together. In this exposition, we stress the importance of how the code was structured in such a way that made safely refactoring and extending the model a relatively easy task, and how Haskell’s strong type system made it possible for our team to remain agile under changing specifications.
Nicolas Wu and José Pedro Magalhães have been funded by EPSRC grant number EP/J010995/1.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The official task description is available at http://icfpcontest2012.wordpress.com/task/. A video presenting the task and announcing the winners can be seen at https://www.youtube.com/watch?v=5TCqUU3-GT0.
- 2.
References
Hart, P., Nilsson, N., Raphael, B.: A formal basis for the heuristic determination of minimum cost paths. IEEE Trans. Syst. Sci. Cybern. 4(2), 100–107 (1968)
Hinze, R.: Generalizing generalized tries. J. Funct. Program. 10(4), 327–351 (2000)
Hughes, J.: Why functional programming matters. Comput. J. 32(2), 98–107 (1989)
Peyton Jones, S. (ed.): Haskell 98, Language and Libraries. The Revised Report. Cambridge University Press, Cambridge (2003). Journal of Functional Programming Special Issue 13(1)
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wu, N., Magalhães, J.P., Bransen, J., Swierstra, W. (2013). Pure and Lazy Lambda Mining. In: Hinze, R. (eds) Implementation and Application of Functional Languages. IFL 2012. Lecture Notes in Computer Science(), vol 8241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41582-1_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-41582-1_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-41581-4
Online ISBN: 978-3-642-41582-1
eBook Packages: Computer ScienceComputer Science (R0)