| Department of Computer Sciences |
![]() |
Check my WWW page for upto date information; you are welcome to send me e-mail.
Lectures are from 6:30 to 7:45 Mondays and Wednesdays in OEC-137.
This is a course about programming in functional languages. We will focus on the Haskell programming language. Since there is little exposure to functional languages in the usual curriculum, it is impossible to effectively compare programming in a functional language with programming in an imperative language. In this course we attempt to provide the opportunity to program significant programs in Haskell.
Functional languages are important because they are easier to understand and reason about. They have an important impact on the design of all new programming languages. Imperative languages are based on the needs of the computing machinery, functional languages are closer to the way humans think.
Students are expected to know how to program in an imperative language like Java, Ada or Pascal, and to know about algorithms and data structures. Such material is taught in CSE 1001, 1002, 2010 in the undergraduate curriculum.
Some books on Haskell are:
| O'Sullivan et al. |
Bryan O'Sullivan, John Goerzen, and Don Stewart. Real World Haskell. Sebastopol, California: O'Reilly Meida, 2008. ISBN: 978-0-596-51498-3 |
![]() |
| Hutton |
Graham Hutton. Programming in Haskell. Cambridge University Press, 2007 ISBN-13 9780521871723 |
![]() |
| Okasaki |
Chris Okasaki. Purely Functional Data Structures. Cambridge University Press, 1999 ISBN 0-52166350-4 |
![]() |
| Reade |
Chris Reade. Elements of Functional Programming. Addison Wesley, 1989 ISBN 0-201-12915-9 |
![]() |
| Michaelson |
Greg J. Michaelson. An Introduction to Functional Programming Through Lmabda Calculus. Addison Wesley, 1988 ISBN 0-201-17812-5 A freely-distributed version [400kb, pdf, 241 pages]. |
minima k xs = take k (sort xs)From Real World Haskell.
"Evoluation of a Haskell Programmer" List comprehension
quicksort [] = [] quicksort (s:xs) = quicksort[x|x<-xs,x=s]