TIP in Haskell — another exercise in functional programming

  • Colin Runciman
Conference paper
Part of the Workshops in Computing book series (WORKSHOPS COMP.)


Several years ago, Peyton Jones [3] 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.


Input Stream Functional Programming Functional Language Abstract Data Type Virtual Screen 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    R. Bird and P. Wadler. Introduction to Functional Programming. Prentice-Hall, 1988.Google Scholar
  2. 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
  3. 3.
    S.L. Peyton Jones. YACC in SASL — an exercise in functional programming. SoftwarePractice and Experience, 15 (8): 807–820, August 1985.CrossRefMATHGoogle Scholar
  4. 4.
    C. Runciman. What about the natural numbers? Computer Languages, 14 (3): 181–191, 1989.CrossRefGoogle Scholar
  5. 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
  6. 6.
    M. Spivey. A functional theory of exceptions. Science of Computer Programming, 14 (1): 25–42, June 1990.CrossRefMATHGoogle Scholar
  7. 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
  8. 8.
    H.W. Thimbleby. The design of a terminal independent package. Software — Practice and Experience, 17 (5): 351–367, May 1987.CrossRefGoogle Scholar
  9. 9.
    S.J. Thompson. Interactive functional programs. Technical Report 48, Computing Laboratory, University of Kent at Canterbury, 1987.Google Scholar
  10. 10.
    P.L. Wadler. Comprehending monads. In Proceedings of ACM Conference on LISP and Functional Programming, pages 61–78, June 1990.CrossRefGoogle Scholar
  11. 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. 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
  13. 13.
    S.C. Wray and J. Fairbairn. Non-strict languages — programming and implementation. The Computer Journal, 32 (2): 142–151, April 1989.CrossRefGoogle Scholar

Copyright information

© British Computer Society 1992

Authors and Affiliations

  • Colin Runciman
    • 1
  1. 1.Department of Computer ScienceUniversity of YorkHeslington, YorkUK

Personalised recommendations