BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//talks.cam.ac.uk//v3//EN
BEGIN:VTIMEZONE
TZID:Europe/London
BEGIN:DAYLIGHT
TZOFFSETFROM:+0000
TZOFFSETTO:+0100
TZNAME:BST
DTSTART:19700329T010000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0100
TZOFFSETTO:+0000
TZNAME:GMT
DTSTART:19701025T020000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CATEGORIES:Computer Laboratory Programming Research Group Sem
 inar
SUMMARY:Programming with Comonads and Codo Notation - Domi
 nic Orchard\, Computer Lab
DTSTART;TZID=Europe/London:20110513T150000
DTEND;TZID=Europe/London:20110513T160000
UID:TALK31418AThttp://talks.cam.ac.uk
URL:http://talks.cam.ac.uk/talk/index/31418
DESCRIPTION:The category theory structure of a monad fortuitou
 sly matches the underlying structure of many diffe
 rent notions of impure computation such as input/o
 utput effects\, partiality\, state\, non-determini
 sm\, and more. Thus\, monads can be used in semant
 ics and programming as a useful abstraction mechan
 ism\, and have been used enthusiastically as such 
 for the last two decades.\n\nThe dual of monads\, 
 comonads\, similarly provides an abstraction mecha
 nism that captures the underlying structure of a c
 lass of computations often described as contextual
 \, or context-dependent. Comonads have not however
  been as enthusiastically embraced in the function
 al programming community although there has recent
 ly been several illuminating examples of their use
 .\n\nThis talk seeks to promote programming with c
 omonads: reviewing existing use\, proffering new e
 xamples\, and contributing a convenient syntax (co
 do-notation) for programming that is dual to Haske
 ll’s do-notation. As an example\, we embed the dat
 aflow language Lucid into Haskell.\n
LOCATION:GC22\, Computer Laboratory
CONTACT:Dominic Orchard
END:VEVENT
END:VCALENDAR
