Personal tools

From a newbie II

From HaskellWiki

Jump to: navigation, search


1 Introduction

Hello there. I am another Haskell beginner. I am writting this page to tell my experience with Haskell so far, inspired by the article From a newbie.

2 First impressions of Haskell

My first language was PHP, then C, then C++ and some ruby/python scattered sparsely. Then someone in the #c++ channel in Quakenet said something about Haskell and functional programming. He said there were 'no variables' or something of the sort, and how it had influenced and improved his C++ style. Since he was a pretty good programmer I decided to take a look. Ugh, what the f*ck is this? So it never went past taking a glance from the examples in wikipedia or, learning by guessing and then giving up.

Only 6 months after, out of sheer boredom I decided to resume my Haskell lessons. Naturally, I am enjoying it more than ever, since this 'feeling' that learning something \this\ new gives I had only found when learning C, or learning about OOP in ruby or C++.

3 Learning Haskell takes lots of time and practice

Just like it took... what, 2 years? to learn C++ (and I still don't consider myself good at it), I think Haskell has a loooong learning curve. Specially if you come from an imperative background.

That is the problem. Imperative or OOP entrenches in your brain and repels other paradigms. Just learn Haskell earlier. --Beroal 05:13, 20 January 2010 (UTC)

4 Learning Haskell made easy (easier)

Short and sweet:

  • Print the haskell98 report - read.
  • #haskell on freenode - ask.

5 Haskell can be interpreted AND compiled?

I have to admit this was one of the features about it that attracted me the most. So far I had dealt with either compiled languages (C, C++) or interpreted (Ruby, Python, PHP). This just looked awesome. And it is.

6 Haskell can be used to write real-world stuff

Amazing, so it's not educational oriented only, but rather has a rather large standard library for interfacing with the real-world (WIN32 Api, OpenGl, Networking, etc). Sweet.

7 Elegant solutions here I come

I'm not even sure if I like the code more than the resulting binaries sometimes.  :)

8 Wtfux is a monad

I think I'm getting it...amazing. Start by understanding IO. Then realize what a monad IS. Then make your own monads. Oh my gosh.