Description
1.1 Aims of This Project
The aims of this project are as follows:
• To give you an introduction to programming in Haskell.
• To expose you programming with high-order functions.
• To get you to use lazy evaluation and innite data structures.
1.2 Project Specication
Update your github repository with a directory submit/prj4-sol to contain a
le prj4-sol.hs which implement the functions specied in the skeleton le
prj4-sol.hs:
• The le may not include any other top-level denitions.
• If the specication says that recursion is not allowed, then your implementation must not directly use recursion.
The le LOG provides an annotated sample log of the operation of these functions.
1.3 Provided Files
The <./prj4-sol> directory contains the following:
prj4-sol.hs A le containing the specications for the exercises. You should
use this as a starting point for your work.
README A template README; replace the XXX with your name, B-number
and email. You may add any other information you believe is relevant to
your project submission. In particular, you should document the datastructure used for your word-store.
1
1.4 Hints
• The solutions to many of the exercises easily t on a single line.
• Most of the exercises require the use of higher-order functions.
• Some of the exercises can avoid the use of recursion by using functions
like map, foldl, foldr, or filter.
• Even though the requirements preclude the use of auxiliary top-level de-
nitions, this is not really a restriction since functions can contain internal
denitions using let or where.
• See Debugging and Haskell/Debugging for tips on how to debug Haskell
programs.
2