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 efpug@softwareprocess.es if you're interested in speaking in the summer or fall!
Thanks,
Abram (EFPUG Organizer)
Edmonton Functional Programming User's Group
Friday, June 7, 2013
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:
https://github.com/abramhindle/hands-on-haskell
https://github.com/abramhindle/hands-on-haskell/blob/master/tutorial.lhs
If you want to see the tutorial we were working with checkout:
https://github.com/abramhindle/hands-on-haskell
https://github.com/abramhindle/hands-on-haskell/blob/master/tutorial.lhs
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.
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.
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.)
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.
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?
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: https://docs.google.com/file/d/0B5iw-UVgBBQRbHBSaC1EUEhBbDQ/edit PDF
Slides: https://docs.google.com/file/d/0B5iw-UVgBBQRbHBSaC1EUEhBbDQ/edit 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.
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.
Subscribe to:
Posts (Atom)