Will reading a Haskell book help adopt a functional programming mindset?

Well, not quite as lisp predates it by 35 years :wink: Even erlang is older. It has been the academic playground for computer science for a while though.

I mean not the oldest … :slight_smile: but it have most concepts of functional programming. So if you want to learn all concepts Haksell is place to start. And if you learn all concepts , it will be easy to pick any functional language.

2 Likes

thanks @cmkarlsson, I also read about Structure and Interpretation of Computer Programs - I might give it a try as well. @mkunikow I also read a few recomendations about Haskell Book - gonna research a bit more between both books and make a decision. And thanks for the podcast, gonna listen to it tomorrow.

1 Like

There is an lfe version of it as well in progress but you might want to have a look as it will give you an idea what i looks like:
https://lfe.gitbooks.io/sicp/

A little old now, but this thread might help:

Everybody is different.

After repeated goes at Haskell, it was Clojure that finally helped me getting “functional”. Functional Programming in Erlang actually conveyed the mindset quite effectively, mainly because you’re not getting bogged down with type classes (as much as I like static typing - I wish they would run Introduction to Functional Programming in OCaml again). From that perspective Learn Functional Programming with Elixir (Pragprog) may be worth a look - the first chapter is available from here.

Instead of SICP, consider Racket with How to Design Programs, 2e or possibly Realm of Racket (see also here and here).

That being said of all the Haskell resources that I’ve used I liked haskellbook the most - but the chasm between (C, C++, Java, C#, Python)-ville and Haskell is quite wide so it may be a good idea to look for a more intermediate destination before moving on to Haskell.

4 Likes

I’ve got it and was waiting for it to get a final release, by the look of it that should be right about now:

We’re going to publish the final version between end of February or the beginning of March.

I think I am going to read it next :003:

1 Like

Was announced as “in print” in the February 28, Newsletter.

1 Like

I got convinced to try haskellbook, but seems that there is not a printed version, at least can’t find one. So might try real world haskell, and then hopefully Functional Programming in Erlang

Frequently Asked Questions

Will there be a print version?
The short answer is: we hope so; we’re working on it.

The slightly longer answer is that it didn’t make sense to worry about that too much while the majority of the book wasn’t written yet. We’ve been churning and adding new material quickly, and to maintain that speed, we had to delay giving serious thought to printing. That said, we hope to make it happen. We do have our early access buyers in mind and will offer them discount codes for the print book when it is available if the publisher/printer allows it.

At 1200+ pages it’s best considered as a long term project.

Note that because of it’s age Real World Haskell may be more frustration than it’s worth especially from a beginner perspective.

In the short term, according to the TOC, Learning Functional Programming with Elixir does seem to hit all the right spots:

  • Pattern matching
  • Recursion
  • Higher Order Functions

(…but that’s all I can say because I don’t actually have access to it)

You can always have a look at the source code to see if it’s not advanced enough for you.

The book is not final release, so this is only electronic version.
But who needs printed version … :slight_smile:
I read all books on Samsung S2 9.7 tablet. Specially good if you have safari online account.

Waiting for this book

yeah :confused: read a few reviews saying that probably it’s not the best book for a starter.
I could read some of the elixir books, but there are some concepts that I won’t learn as currying for example as there is not something elixir has natively, plus I consider I understand the basic concepts like pattern matching, recursion, etc, so wouldn’t like to read a book that explains concepts I already know in a language I kind of already know and use, that’s why I wanted to read about functional programming applied to a pure functional language to help me think functional.

IMO currying is overhyped - the core idea is partial application, i.e. a function accepting a parameter and returning another function ready to accept the remaining parameters which kind of falls into the “Higher Order Functions” topic (function returning a function - often for the purpose of feeding it to a higher order function) and is realized in Elixir with a closure.

That seems to be discussed in Creating Anonymous Functions - passed that currying is a “nice to have”/“cool feature” as it streamlines lots of partial application cases (but not all of them).

Currying versus Partial Application explains it with JavaScript.

1 Like

I would say that Higher Order Function is function as take another function as parameter like map.

With currying you can create anonymous functions much cleaner
example map (add 1) [1..10]

Correct. The controversy is whether functions returning other functions is part of that thinking. Some people exclude it, others include it. My stance is that its part of the whole “functions as values” toolset and that the function being fed into a function is often produced by a third function. So it seems natural to have that entire discussion all at once.

actually currying was just an example. But somehow I still have the idea that learning or reading about functional programming applied to Haskell will help and be useful even for my Elixir programs, whereas by reading about functional programming applied to Elixir I will miss some concepts more specific to functional programming that don’t apply to Elixir (some theoretical concepts and some practical concepts). This is why I’m looking for Haskell books.

Like Algebraic data types :slight_smile:

data List a = Nil | Cons a (List a)

I’m not trying to discourage learning Haskell, far from it and haskellbook is fantastic. But learning Haskell is completely different from learning lets say Java - especially if your brain has been “shaped” by Java. Maybe you’ll be fortunate and it will be easy peasy for you - but it may also take a long drawn out effort of constantly chipping away at it. I get that the whole “functional purity” thing has some definite appeal.

My argument is that there may be less taxing ways to get the “functional programming mindset”.

I seem to remember that Katie Miller used Haskell at Facebook but Facebook also uses OCaml in Flow and of course is working on ReasonML (and Jane Street uses OCaml).

Interested in ReasonML?

As for Haskell - remember to just keep at it.

2 Likes

Yes I agree Haskell is not language you will learn in 3 weeks like GO :slightly_smiling_face:
You will need to reserve some time on it.

But as I said there are nice people that will help you especially on slack channel.
https://fpchat-invite.herokuapp.com channel #haskellbook

Not really. Haskell focuses on the HKT’s and typeclasses and so forth mindset, which I find very limiting. HPT’s (like OCaml) can do all of the prior mentioned with a singular syntax while being far more powerful as well.