Friday, June 7, 2013

Looking for Speakers!

While this summer is likely going to be slow, we're always looking for speakers who want to talk about anything relevant to functional programming.

One kind of talk that anyone can do is "How to program functionally in language X". This is a nice talk to put together because it just relies on your knowledge of your favorite language in order to talk about the functional features in the language, because hey everyone says that LISP is functional just because you can throw a few lambdas around right?

Send an email to if you're interested in speaking in the summer or fall!


Abram (EFPUG Organizer)

Tuesday, May 7, 2013

Hands On Haskell notes

We had our Hands On Haskell meeting with 6 people in attendance all learning haskell.

If you want to see the tutorial we were working with checkout:

Haskell Tutorial (C) 2013 Abram Hindle CC-BY 3.0 For Edmonton Functional Programmers Users Group
Hi this is a literate program

Friday, April 26, 2013

Hands-on Introduction to Haskell!

What: EFPUG Meetup: Hands-on Introduction to Haskell!
When: MONDAY May 6th @ 6:00 pm in CSC 2-49 @ UAlberta

Bring you laptops! Install Haskell on them before hand and let's get hacking!

This will be an introduction to Haskell syntax, functions, scope, data structures and writing basic Haskell structures. But it will be hands on! You'll be making executable code!

So experienced or not you'll learn something. We often go to RATT afterwards for drinks and food.

Monday, March 4, 2013

Haskell Code Golf on March 5th

What: Haskell Code Golf
When: March 5th @ 6:00 pm in CSC 2-49 @ UAlberta

This meeting is going to be a hands-on functional programming meeting! Bring your laptop and we'll walk-through some fun programming problems:
We'll code golf! Par is the number of characters!

We'll solve problems and then try to make the solutions REALLY SMALL.

So if you're new to haskell come and learn some really dirty tricks!

If you're a haskell veteran come show us your dirty haskell tricks ;)

This is an interactive session, please bring a laptop :)

Afterwards we'll probably go for drinks at RATT.

Monday, February 4, 2013

Feb 5th Meeting: Haskell Code Share/Walkthrough/Tutorial (SDL, Random, Laziness, etc.)

Feb 5th Meeting: Haskell Code Share/Walkthrough/Tutorial (SDL, Random, Laziness, etc.)

When: February 5th @ 6:00 pm in CSC 2-49 @ UAlberta
Presenters: Abram Hindle, Joshua Campbell, and more!
This meeting is going to be a hands-on functional programming meeting! Bring your laptop and we'll walkthrough some existing systems and talk about how functionality was achieved functionally (or not).
  • Haskell sand game will be discussed. It uses SDL to provide an interactive automata game. Issues regarding graphics, state, randomness, and garbage collection will be discussed.
  • Sieve of Eratosthenes exploits laziness to find primes (pretty simple but elegant).
  • Your project here! Do you want to share? Bring it along and share it with us.
So we're still looking for other presenters but please join us, bring your laptop, and lets get down to some functional hacking in Haskell!

Friday, December 28, 2012

Jan 8 Meeting Programming with Monads

Presenter: Roshan Shariff

Title: Programming with Monads

When: January 8th @ 6:00 pm in CSC 3-49 (1 floor above our usual floor)

When you write a program, you probably want it to do things like talking to the Internet, displaying images, or even just reading and writing files and accepting input. It's hard to imagine how any of these could be encoded into pure mathematical functions which simply take an input, produce an output, and have no other side effects. So if you're programming in a pure functional language like Haskell, how do you write programs that do interesting things?
Somewhat surprisingly, it turns out that all of these things and more can be embedded inside a pure functional language using a concept called a "monad". In this talk I will describe what monads are and how they are used. We will see how different monads correspond to different notions of computation, including but not limited to input/output and side effects. We will focus on the idea that a monad is just a software design pattern that can be used to structure code in an easy-to-use way.

There are no prerequisites for this talk. Some background in functional programming would be useful, but I'll explain the basics as I go along. I will be using Haskell, but you won't need any prior knowledge of it to understand the material. Monads have become so popular, in fact, that a quick Google search will turn up implementations in languages like C++, Java, and Javascript. We will discuss how monads and similar ideas are powerful tools to think about and write better code in any language.

Slides: PDF

Tuesday, November 20, 2012

Next Meeting, Dec 4: Why FP Matters

Our next meeting is at 18:00 (6pm) December 4 2012 (2012/12/04) in
room CSC 2-49 in the Computer Science building at the University of Alberta.

Justin Bogner will be presenting the ideas from John Hughes' paper,
Why Functional Programming Matters. This paper, which dates from
1984, offers solid rationale for why functional programming is
relevant to the real world and makes points on how to structure
functional programs that are still very relevant and helpful today.

Have you ever noticed that functional programming is usually described
by what it doesn't have? Do you wonder how there being "no assignment
statements" and "no side effects" could possibly be an advantage in
real programs? In this talk we'll show how features enabled by these
constraints, notably higher order functions and lazy evaluation, make
significant contributions to modularity and composability. We'll go
through examples of these in order to illustrate the power that they
bring to languages such as Haskell.