BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Programming with Monads - Pan Song (Churchill College)
DTSTART:20171115T190000Z
DTEND:20171115T193000Z
UID:TALK95596@talks.cam.ac.uk
CONTACT:Matthew Ireland
DESCRIPTION:As we all know\, functional programming is a different program
 ming paradigm in which functions have no side effects. This kind of pure f
 unctions has many advantages such as allowing us to reason about the progr
 am in an equational way and use arbitrary evaluation order\, (and one in p
 articular with practical significance\, lazy evaluation). However\, side e
 ffects are common\, if not essential\, to real programs we use. Some funct
 ional programming languages simply adds in imperative features such as ref
 erences and sequential execution. This broke the referential transparency 
 and we lose the advantages aforementioned. Monads were invented by the pur
 ist to support side effects and at the same time maintain referential tran
 sparency. However\, many people are confounded by the "inappropriately cho
 sen name" (the inventor of Haskell admitted this) and the underlying relat
 ion to the so-called "category theory". In this talk\, we will explore som
 e examples and derive Monads from first principles. We will see that they 
 are nothing but another example of abstraction\, the fundamental idea of c
 omputer science. In the second half of the talk\, we will explore some mor
 e advanced usages of monads.
LOCATION:Wolfson Hall\, Churchill College
END:VEVENT
END:VCALENDAR
