Course Assignments

Afp0405

How to hand in exercises

Exercises are to be handed in by email befor ethe lecture starts, by sending them to doaitse@cs.uu.nl, with (assuming that the due date is September 11):

  • a subject field as in AFP0911-DoaitseSwierstra-123456789, where the last number is your student number and the name is your wiki name
  • program texts should be normal ASCII files that are attached, with name 0911-wikiname.hs
  • written text should be in attached pdf format (Word files etc. will not be accepted), with name 0911-wikiname.pdf

Week 1

Thu, Sep. 4

  • Hand in three preferences for the topics you want to talk about
  • You may hand in suggestions as a couple
  • Hand in before Tuesday 9.00

Week 2

Thu, Sep 11

  • study the monad tutorial on the web
  • to be handed in Find out what the "extra" functions in the Monad class are used for (Monads are defined in the standard libraries of Haskell), and hand in your own description in the format described above

Week 3

Tu, Sep 16

  • continue studying the monad tutorial
  • try to implement some graph algorithm that you can not easily express in Haskell (like union/find) and express this using STRef's
  • read the finanicial combinators paper

Thu, Sep 18

  • To be handed in You may have noticed that the do-notation has a lot in common with the notation for list comprehensions. This is not a coincidence since list can me made and instance of the class Monad too. Give the proper instance declaration and explain in your own words why this works, and explain the correspondence. Also look up the laws that hold for monads and show that they hold for the implementation you have given.

Week 4

Tue, Sep 23

Week 5

Tue, Sep 30

--