TIP in Haskell — another exercise in functional programming
Several years ago, Peyton Jones  tested some of the claims made for functional programming by re-implementing a well-known parser generator (YACC) in a lazy functional language (SASL) and comparing the result with the original imperative implementation. His conclusions were positive so far as the expressive power of functional programming was concerned — laziness and higher-order functions both proved valuable — but he bemoaned SASL’s lack of type-checking, abstract data types and modules, and also the difficulties of correcting errors and optimising performance in the presence of lazy evaluation.
KeywordsInput Stream Functional Programming Functional Language Abstract Data Type Virtual Screen
Unable to display preview. Download preview PDF.
- 1.R. Bird and P. Wadler. Introduction to Functional Programming. Prentice-Hall, 1988.Google Scholar
- 2.P. Hudak and P. Wadler (editors). Report on the programming language Haskell, a non-strict purely functional language (Version 1.0). Technical report, University of Glasgow, Department of Computing Science, April 1990.Google Scholar
- 5.C. Runciman and D. Wakeling. Problems and proposals for time and space profiling of functional programs. In Proceedings of 3rd Glasgow Workshop on Functional Programming, pages 237–245. Springer-Verlag, 1990.Google Scholar
- 7.W. Stoye. The Implementation of Functional Languages Using Custom Hardware. PhD thesis, University of Cambridge Computer Laboratory, December 1985. Technical Report No. 81.Google Scholar
- 9.S.J. Thompson. Interactive functional programs. Technical Report 48, Computing Laboratory, University of Kent at Canterbury, 1987.Google Scholar
- 11.D. Wakeling and C. Runciman. Linearity and laziness. In Proceedings of 5th ACM Conference on Functional Programming Languages and Computer Architecture, pages 215–240. Springer-Verlag, August 1991. LNCS 523.Google Scholar
- 12.S.C. Wray. Implementation and Programming Techniques for Functional Languages. PhD thesis, University of Cambridge Computer Laboratory, January 1986. Technical Report No. 92.Google Scholar