Effective Functional Programming

COMP 4600/5300 - 205

Week 1–2: Pure Functional Programs

Topics

  • Recursion, pattern matching, guards, higher-order functions, list comprehensions
  • Algebraic data types, type classes, polymorphism

Reading

  • Real World Haskell: chapters 2, 3, 6
  • Yorgey's Intro: chapters 1-5

Exercises

Notes

Week 3–4: User Interaction

Topics

  • Input/output, console programs
  • Error handling, references

Reading

  • Real World Haskell: chapters 4, 5, 7

Exercises

Notes

Project Proposal: DUE November 7

Week 9–10: Effectful programming

Topics

  • Non-determinism, continuations
  • Parsing

Reading

  • Real World Haskell: chapter 16
  • Write Yourself a Scheme: chapter 2

References

Notes

Final Project: DUE December 14

Additional Topics

More Monads!

Topics

  • Monad transformers
  • Free monads, interpreters

Reading

References