Past Meetup

Functional Monthly - Session 1

This Meetup is past

130 people went

Location image of event venue


Welcome to the first monthly meetup of people interested in functional javascript and the topics connected to it. We've decided to combine the recently created Functional JS meetup group with the juggernaut SFJS meetup group to help spread the functional style.

We will meet on the last Tuesday of every month. Some of these meetups may get pretty advanced, but we plan to do our best to organize topics for beginners and advanced javascriptors alike.

We need speakers for the first two meetups.
May 28th @ 7PM
June 25 @ 7PM
Email Taylor to submit your talk - taylor @

TOPIC 1: Functional Programming's Relentless Bug Hunter: Claire
Identify an invariant. Write some data generators. Flood your code with data and check that your invariant never fails. Grow more confident in your app every time your test suite runs. Find bugs before your users do.

John Hughes introduced QuickCheck to Haskell programmers, and since then ports have shown up in most popular programming languages. Claire is a javascript port by Quildreen "Sorella" Motta that I've been using at my day job to test invariants at We'll see the advantages of property based testing, using both toy invariants and examples from an actual application.

Claire is an elegant lady, inside and out. Time permitting, we'll take a brief look at her source, written in LiveScript, a CoffeeScript fork with much better functional programming support. Soul to surface, Claire is an example of the elegance and utility of functional programming.

TOPIC 2: Lifting Every Day (A tale of Applicative Functors & homonyms)
PRESENTER: Brian Lonsdorf
When learning about Applicative Functors, I was presented with overly mathematical or fake examples. Well that and tutorials on the machinery that makes them work, which is elegant, but not very useful in your day to day.

My hope is to show several examples of daily usage including, but not limited to, point-free combinators, list comprehensions, semaphores, and traversal. There's also that whole business about parallel programming, pure computations with effects, and easy composition - after all, they are 1 small step away from monads - but we'll see. I only have a few days to come up with this talk.

Anyways, you should have liftA in your toolbelt if only to understand the twitter trollings of @puffnfresh and get away with way more point free functions that you thought possible.

I'm going to assume a basic understanding of the functional basics like composition and currying, but I'm happy to run through a quick example or two if people request it.