[Haskell-cafe] On the verge of ... giving up!
j.vimal at gmail.com
Sun Oct 14 06:44:05 EDT 2007
I have been trying my best to read about Haskell from the various
tutorials available on the internet and blogs. I havent been following
YAHT properly, so its always been learning from 'bits and pieces'
For most languages (like C/C++/Ruby/Python), the above approach has
helped me. But for Haskell, it is failing. 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
I also tried it for Haskell (Lisp+OCaml+Haskell together).
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. For e.g,
I tried writing a terminal GTalk client for Python when I was learning
it, and learnt so many features that way. I used to call this
'learning by need', and it worked, to the extent that I never knew how
to take 'input' from the user, but knew how to write Objects in
Python! (Since I never used input in that example :)
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.
Then, I set out to learn Monads + Category Theory from a Math
perspective. And since I haven't been introduced to abstract math
(like Groups, etc.), I found this a little difficult. However I tried
my best to understand the tiniest bit and waited for the tiniest spark
that would enlighten me. It didn't work out.
Okay, so you might be wondering as to whats the whole point of this
mail? Well, I am almost on the verge of giving up on something I
really like to learn, just because I didn't go in the right order!
So, I requested my institute to buy Dr. Graham Hutton's book. I would
be getting hold of that quite soon, and am willing to start from the
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,
I have no need to hurry anything at this point of time. But after
being introduced to the tiniest bit of Haskell, and after seeing such
a large and active community here, and #haskell, I had the plan of
conducting a Haskell Workshop, in our department (sometime in Feb next
year, the dates have not been finalized). I just hope that I should be
able to reach a substantial amount of familiarity with Haskell by that
Sorry for the long mail, and pardon me if it was too boring. I just
put my thoughts on <strike>paper</strike> a mail :)
I did have a couple of ambitious projects in my mind when to help me
learn Haskell. They were:
1. An online judge system
I had already done one for contests that were held during our
Technical festival here, using php. The ideas are laid out. All I had
to focus on was learning Haskell.
2. A solver for the Peg-Solitaire.
This was more of an academic interest. I have seen Richard Bird's
presentation on 'How to write a functional pearl, with an example' and
was quite impressed by it. But the actual modelling might be slightly
tricky here, and I am yet to start off with it.
Many thanks for your patience,
encode = map (length &&& head) . group
decode = concatMap (uncurry replicate)
More information about the Haskell-Cafe