[Haskell-cafe] Why Haskell is beautiful to the novice

Silvio Frischknecht silvio.frischi at gmail.com
Sat Aug 29 15:19:51 UTC 2015


> Haskell is great for teaching kids logic, math, data structures - you
> just can't skip details the way you can with experienced programmers.
> This isn't that much different from teaching adults who aren't
> experienced programmers.

Most people on this list (me included) are probably people enjoying math
and logic. But I know a lot of people who love CS and even do it
professionally who think of math as a bit of a chore. Most of those take
one look at Haskell and say "I'm not interested". With Python or
Javascript/HTML you will be able to motivate a much bigger part of your
audience. HTML was one of the first things I learned in CS.

Also just wanted to add an example of how Haskell can be really tricky
for very simple things.

Let's consider the simplest loop I can think of. The function to sum up
all the numbers up to N. Anyone new to Haskell will implement this in
the straight forward way.

sumToN 0 = 0
sumToN n = sumToN (n-1) + n

It's very elegant. It's more of a definition than an algorithm, really.
The equivalent python code would probably do a loop (4-5 lines).

Now, if you run your python code for a billion, it will eventually
return the correct result because you specified the algorithm more
clearly. If you run the Haskell function for a billion however, it will
crash your computer and set your house on fire.

Now, you will have to explain tail recursion and why you won't get a
StackOverflow despite the fact that you build up a huge stack. I have
done Haskell for a quite a while, and I'm still unsure sometimes if
something will work in constant space or not.

Cheers,

Silvio


More information about the Haskell-Cafe mailing list