Haskell 101 at the Brisbane Functional Programming Meetup
I just thought I'd let the world know that tomorrow night, at 6pm AEST, the Brisbane Functional Programming Group is having another get-together. The topics for the meeting are:
- Introduction to Functional Programming - by Brad Clow
- Haskell 101 - by me!
There are still spots available if you're keen to come along. It should be fun!
I'm always up for some public scrutiny, so come along and bring your rotten tomatoes.
If you can't make it, I'll post the slides for the talk on this site, and on Meetup.com, when the event has finished so you can see what was covered. Feel free to ping me or ask questions.
Update 19th Aug '09
The talk seemed to go quite well. I had to motor through the material quite quickly due to the late start, but on the whole I think it was well received. I haven't had any negative feedback so far
Slides/content are now up for grabs!
The Value of a Technical Community
This post was inspired by an experience I had recently in an IRC channel. To protect the innocent, I'll refrain from naming and shaming the channel and individual as those details aren't important.
Communities are arguably the life blood of technology. Without a good community the likelihood of the technology catching on is drastically reduced. Those communities which lack individuals that are happy to put time and effort in to help get others up to speed tend to stagnate. Any community which involves members that are abrasive, rude and downright offensive is destined to suffer long term.
Point-Free style: What is it good for?
If you're not interested in what inspired this post, then skip this section and jump to the more interesting bits.
A little bit of history...
Recently I've been delving into Haskell quite a bit. It's part of my apparently never-ending quest to learn as much as I can about as many languages as I can (well, those that appeal to me at least :)). While I love playing around with a language, toying with ideas, writing small programs, reading books, blog posts, etc it's not really the same as having an on-call expert to help and guide you.
Data Crunching in Haskell
A few days ago I was having a chat to a friend of mine about a little data parsing problem. He had the need to parse a multi-dimensional array to pull out some values. That array was guaranteed to be square, but not necessarily in contiguous memory. He needed to parse each "column" of the array, calculate a total, and then determine the biggest and smallest of those totals.
A sample of the data might look something like this:
data = ({150,200,45,57,95,2,45,32,15,10,5,2,2,4},
12,20,45,37,10,5,2,2,10,95,2,45,32,7},
32,15,10,5,2,23,24,15,20,45,57,95,0,45})
So the first step would be to add 150, 12 and 32 and store the value. Then 200, 20 and 15, and store the value. Do this for all of the columns, then get a maximum and a minimum.
Project Euler #10
WARNING! This post contains a spoiler for Problem #10 listed at Project Euler. Do not read the rest of this post if you're planning to attempt to solve the problem yourself.
A Better ‘nub’
During my Haskell travels I have found myself using the nub function quite regularly. For those too lazy to click the link: nub removes duplicates from a list of items. eg:
Prelude> nub [1,1,3,3,5,5,6,6,6,1] [1,3,5,6]
Fairly simple stuff. Until recently I hadn't bothered pondering the internal implementation of this function because I hadn't really been too worried about performance. That's no longer the case. I recently cracked open the hood of nub, and was rather surprised by what I saw.
Project Euler #9
WARNING! This post contains a spoiler for Problem #9 listed at Project Euler. Do not read the rest of this post if you're planning to attempt to solve the problem yourself.
Another Quick Coding Challenge
I was about to head to bed when I stumbled across another interesting coding challenge. Since I had another half hour or so to kill I thought I'd give it a shot!
Project Euler #8
WARNING! This post contains a spoiler for Problem #8 listed at Project Euler. Do not read the rest of this post if you're planning to attempt to solve the problem yourself.
Project Euler #7
WARNING! This post contains a spoiler for Problem #7 listed at Project Euler. Do not read the rest of this post if you're planning to attempt to solve the problem yourself.