The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
2.1 KiB

+++
title = "Learn You a Haskell for Great Good! - Miran Lipovača"
date = 2018-11-23
[taxonomies]
tags = ["books", "miran lipovaca", "haskell", "reviews", "it", "2 stars"]
+++
[GoodReads Summary](https://www.goodreads.com/book/show/6593810-learn-you-a-haskell-for-great-good):
Learn You a Haskell for Great Good! is a fun, illustrated guide to learning
Haskell, a functional programming language that's growing in popularity. Learn
You a Haskell for Great Good! introduces programmers familiar with imperative
languages (such as C++, Java, or Python) to the unique aspects of functional
programming. Packed with jokes, pop culture references, and the author's own
hilarious artwork, Learn You a Haskell for Great Good! eases the learning
curve of this complex language, and is a perfect starting point for any
programmer looking to expand his or her horizons. The well-known web tutorial
on which this book is based is widely regarded as the best way for beginners
to learn Haskell, and receives over 30,000 unique visitors monthly.
<!-- more -->
{{ stars(stars=2) }}
I have mixed feelings about this book.
It starts really really well, explaining how the language works. And then it
falls on the trap of "functional programming" that, instead of focusing on what
you can do with the language, it goes lengths talking about monads, monoids,
functors and nondeterminism that you keep wondering why it is taking so long
explaining function programming instead of focusing on what you can do and when
you should use one.
There is even a bad description of "don't do this because it will look horrible
when you convert to this other form". Wondering if something will look horrible
if you write the same thing in a different form should never be a deterrent for
something.
Also, there is the language. Surely, Haskell adds a missing point in Lisp,
which are the types, but them it goes off the rails trying to remove
parenthesis and the result is a mass of weird symbols, all representing the
same thing. And you have, as I mentioned before, different forms to write the
same code, which makes the language highly irregular, one trait that really
pisses me off in programming languages.