
Jim Burton wrote:
Hi, I will be a TA on a comparative PL course and I'm looking for small examples (ammunition) which motivate the use of Haskell and functional programming generally. The course is for 1st year Software Engineers, none of whom are likely to have used a functional language. They will all have experience programming Java and a little C++, with a few of them knowing Python, Ruby, PHP etc etc too.
It's getting to be something of an old hat these days, but one of the most powerful selling points I've seen for purity (and strong types) is QuickCheck (and SmallCheck, LazySmallCheck,...). This entire paradigm of testing makes writing tests trivial and can only work right for pure functions. I don't know if your students are just students or if they have some real software engineering experience, but anyone who's hacked on Perl, Python, Ruby, Java, or C++ enough to earn the title would be immensely impressed by how purity eases debugging. -- Live well, ~wren