Talk night, Wednesday, March 14th, 7:30pm at Revelytix

Pizza and refreshments will be provided.

The Speaker: Patrick O’Neill

Patrick’s currently a grad student at UMBC studying computational biology. He’s a FP aficionado, knows Haskell and has been interested in various lisps over the years.

The Talk: A window into monads

Patrick writes:

In the last twenty years, monads have found broad application in many topics in programming languages. Despite its (alleged) utility, however, monadic programming is widely reputed to be difficult and abstruse. This perceived difficulty has encouraged a cottage industry in monad tutorials, variously comparing monads to burritos, spacesuits, boxes, amorous lovers, monsters, elephants and Bedouins. Disturbingly, it has become obligatory to begin monad tutorials by lamenting the proliferation of monad tutorials and announcing one’s intention to solve the problem by writing the one true monad tutorial. (The result, of course, is N+1 monad tutorials.) The compulsion to write monad tutorials is so widespread (approximately 50 confirmed sightings as of 2012) that it is actually referred to as “the monad tutorial fallacy”.

How did we get here? How could there be such widespread difference in intuitions about monads? I claim that it is precisely because monadic structures are so pervasive in computation that it is so difficult to offer canonical analogies, and so confusing see what essential similarities they share. For that reason, the aim of this talk is to introduce monads strictly from definitions and worked examples. By the end, you should understand what a monad is, why they’re used, and how to derive your own.

This talk is pitched at the level of someone who thinks that attending a talk about functional programming sounds like a good idea I.e. it will probably be helpful to have some intuitive grasp of the lambda calculus. Code examples will be given in Haskell, but it is not necessary that you know the language. In fact, part of the fun will be to derive parts of Haskell syntax from scratch, so there’s no need to know it in advance.

The Location: Revelytix(Hampden) office: 1700 Union Avenue Suite 2-A

The night will take place at the Revelytix office in Hampden, right near the Woodberry light rail stop.  Walk through the gate and to the left side of the building and into the double doors.  There’s ample parking in the lot.

First Presentation/Hack Night, Wednesday, February 1st, 7:30pm at Revelytix

EDIT: Video has been added:

Slides and code here: https://github.com/baltimorefp/baltimorefp/tree/master/pres01-concurrency

This is the first presentation/hack night/get-together for BaltimoreFP.  Bring something to work on and ask questions about.  The talk will last approximately 30 minutes, but the meetup will last longer.  Come enjoy the knowledge, comraderie and pizza!

The Talk: Clojure’s Concurrency Types – Refs, Atoms, Agents, and Vars

This talk will cover the first-class concurrency types provided by Clojure with a focus on the capabilities and limitations of each construct, and will give some sense of what tool to reach for in common situations.

Talking points include:

  • Programming with values
  • State vs. Identity, the foundation upon which Clojure’s concurrency primitives are built.
  • Refs: Coordinated, synchronous identities.
  • Atoms: Uncoordinated, synchronous identities.
  • Agents: Uncoordinated, asynchronous identities.
  • Vars: Localized identities.

The Presenter: Alex Redington

Alex Redington works mostly in Ruby and Clojure at Relevance and has been using Lisp in one form or another since 1999.  He currently has two open-source Clojure projects: monotony, a library for working with cyclic time and scheduling (http://github.com/aredington/monotony); and fidjet, a configuration convenience tool for both library authors and library users (http://github.com/aredington/
fidjet).

The Location: Revelytix(Hampden) office: 1700 Union Avenue Suite 2-A

The night will take place at the Revelytix office in Hampden, right near the Woodberry light rail stop.  Walk through the gate and to the left side of the building and into the double doors.  There’s ample parking in the lot but make sure not to leave your car after the meetup since I’ll have to lock up.