[Haskell-cafe] On the verge of ... giving up!

Andrew Coppin andrewcoppin at btinternet.com
Sun Oct 14 07:32:29 EDT 2007

Vimal wrote:
> I like learning by
> comparison with other similar languages. This approach worked for me
> when I tried learning Python+Perl together. The nicer syntax and
> easier object-orientedness made me leave Perl behind and pursue
> Python.
> I also tried it for Haskell (Lisp+OCaml+Haskell together).

This probably works quite well for mainstream programming languages 
(since they're all so similar), but is unlikely to work at all for 
Haskell (since, as far as I know, no other programming language on Earth 
is remotely like it - Miranda excluded). Even Lisp and Erland are 
nothing like Haskell, and they're supposedly based on the same ideas.

> The next step I usually take in learning a language is, not to go by
> the topics found in textbooks, but by taking real world examples and
> then blindly try to solve it using that language as a tool.

Not a bad way to learn to use a tool. You might want to stick to things 
that involve simple I/O and complex processing rather than the other way 
round though. ;-) (For example, I wrote a program that renders an 
animation of the solutions of a simple differential equation by 
numerical integration. The math is complex; the I/O just involves 
dumping millions of numbers into a big text file.)

> I didnt want to repeat that mistake, so I made sure I would learn IO
> in Haskell, which initially turned out to be a disaster, due to the
> 'Moands' which sounded like 'Go Mads' to me.

For the longest time I couldn't remember whether it's "monad" or 
"monand"... but anyway, yeah, it's a common problem. It's not actually 
complicated ones you understand it; it's just that it's so abstract that 
it's hard to explain. It's a bit like trying to explain to somebody what 
a "magnet" is... it's not a complex concept, just hard to describe.

> Then, I set out to learn Monads + Category Theory from a Math
> perspective.

Um... yeah, that probably won't work.

As far as I know, Haskell's idea of "monad" has little to do with the 
theoretical concept.

> Meanwhile, could anyone suggest if there was anything wrong in my
> approach to learning Haskell/the other languages? I agree that the
> learning methodology is something personal and I have to find out what
> best suits me, but I would like to hear something from you,
> Haskellers, too.

I'm a maths nerd. To me, Haskell looks like an advanced term-rewrite 
system similar to Mathematica. It was quite easy to learn the basics. 
What took longer was learning to approach problems in the right way. The 
way you'd do things in an object oriented language is usually NOT the 
way you'd do it in Haskell. (Unless you enjoy making your life hard...) 
Unfortunately, that's all practice.

More information about the Haskell-Cafe mailing list