Haskell Book Recommendations

Alright Jow Forums, I have decided to learn me some Haskell. Give me some recommendations.

Attached: images.jpg (783x391, 10K)

Other urls found in this thread:

haskellbook.com/
usi-pl.github.io/lc/sp-2015/doc/Bird_Wadler. Introduction to Functional Programming.1ed.pdf
haskell.org/tutorial/haskell-98-tutorial.pdf
learnyouahaskell.com/introduction
dev.stephendiehl.com/hask/#monads
github.com/github/semantic
homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf
cis.upenn.edu/~cis194/spring13/lectures.html
github.com/data61/fp-course
scale.ai/blog/scale-engineering-team
twitter.com/AnonBabble

learn you a Haskell, great introduction, then you are mostly set, the language isn't a convoluted mess like C++, it's really simple, the important thing is to learn to think in a functional way, when you manage to do it then applicatives and monads become piss easy and monad transformers come in naturally.

Also came across something called the "haskell book". Thoughts on that?

Never heard of it, if you want better more specific topics the haskell wiki is excelent, I would recommend Real World Haskell but some parts are outdated and are not valid anymore.

Programming in Haskell by Hutton
Haskell: The Craft of Functional Programming by Thompson
Real World Haskell by O'Sullivan, Stewart, and Goerzen
Parallel and Concurrent Programming in Haskell by Marlow

This one? The purple one written by that guy and the tranny?

It's my favorite Haskell book!

Learn you a Haskell is a good introduction and reference, something to give you a feeling for haskell in a weekend.

However you will probably need a beefier text book if you plan to actually develop software in Haskell (at least I did). Pic related is my favorite and great for self taughts.

My adviser recommends "Introduction to functional programming" by Wadler. It's beautiful, but probably out of reach to anyone that without a good mathematical background.

Attached: haskell_book.jpg (309x400, 13K)

haskellbook.com/ is the one

I anti-recommend Real World Haskell. Way too much low level systems level programming, along with hand waving around core abstractions.

Seconded. The purple book is really fucking long, but Haskell Programming is probably the best way to get intuitions about how shit works.

Learn you a Haskell is good for getting up and running.

bump
I am also interested in learning Haskell and this thread is nice

Attached: 1552768611504.png (1251x927, 729K)

The only one worth anything is real world haskell.
Learn you a haskell is garbage.

I don't mean to derail the thread, but what are the most used functional programming languages in the industry? Purely functional, no "javascript is actchually part functional" please

usi-pl.github.io/lc/sp-2015/doc/Bird_Wadler. Introduction to Functional Programming.1ed.pdf

thank me later

There are no good Haskell books except for Real World Haskell, which is now sorely outdated.
Learn You A Haskell is incredibly shit.

also this

haskell.org/tutorial/haskell-98-tutorial.pdf

and then this

learnyouahaskell.com/introduction

F# is used a lot in some sectors, particularly in financial services
It's a functional programming language with an ML flavour
However it isn't a pure functional language like Haskell, you can use some wacky escape hatches to do ugly nonfunctional things if you want.

Other than that, there's some languages that heavily lean on functional elements, such as Scala and Erlang.

LYAH fucking suck diiiiiiiiicks stop recommending it you ******s

These are good ones
These are outdated/awful

brainlet

Hudak is an exceptionally good writer. Richard Bird is another good one. then comes Hutton, his videos on Youtube are cool

fuck, fucking degenerates and idiots everywhere.

So you are recommending an outdated website and a language reference two decades old? Do you even program in haskell or are you just a moron?

Funny isn't it
*sips Monster Energy Philosophy Ultra*
The purest language attracting the impurest people...

Yeah, probably should have mentioned my use case in the OP. Not planning to write any amazing software in haskell, just interested in understanding the functional programming paradigm. Everyone is recommending the functional programming way of doing things, from Jow Forums to fucking Quora, so thought it might be worth something looking into. I am a mathlet, but not a brainlet - if I don't understand something, I'll just google that shit.

Will being a Haskell master make me employable?

the book's called Nigger

I am late but here it goes. Apart from Parallel and concurrent programming in Haskell by Simon Marlow, none of the mentioned books will take you beyond beginner level. I pretty much finished them all. Yes, all. Get Programming in Haskell from Manning Publications is mire practical and well written. You want to go beyond intermediate, get Haskell in Depth, also from Manning Publications, but it’s still in early access.
You’ll encounter multiple walls in your journey through Haskell. It took me 4 years on and off. The first wall is the Monad. If you start thinking about your program in terms of contexts, then you are ready to move forward. The next wall is the Monad Transformer. Next one is actually using Haskell in practice an understand why this is the better way. Understand how to maximise the proportion of pure code in your project. This is where you’ll have to apply strictness to critical paths, add language extensions etc. Good luck. The language is awesome.

Github just published Semantic, their parser system. Written in Haskell. Facebook has a lot of Haskell engineers, some people from the committee. Also used a lot where mathematical correctness matters. Wire server is written in Haskell. FP complete employs some smart people. Galois is a Haskell company specialised in crypto, I think they got a big contract to secure elections. So yeah. Not for code monkeys.

Read Do NOT read LYAH, it's redditor garbage by someone who barely knew Haskell when they wrote it.

no. there are, perhaps, a few hundred positions for a billion people. HR will select ivy league phd, not you

however, you will become a better programmer (real programmer, not a coder or a webdev) if you would learn the principles behind Haskell and relation to math and "actual reality".

do it faggot. Haskell is a real wonder of the world, you will realize some day. It is as wonderful as pure applied math, but it is applied logic (strongly typed lambda calculus all the way down)

why, it is ok. it is just written by a average imperative normie, a solid packer, if you understand what I mean

>The first wall is the Monad.

oh lol. It is just a type class (which means it must be parametrized/instantiated) which defines a typed transition.

to be a monad is to implement at least two functions which follow the laws of associativity and commutativity.

just this. then you could write instances, or say that some other types *are* instances of a monad (which is just a formalized abstract notion)

fucking hipster posers everywhere

Your definition of a monad is incorrect. They do not need to be commutative. Even after fixing that it's incomplete.

LYAH and Real World Haskell are both poor choices at this point in time. I recommend haskellbook.com and the CIS194 lecture material + exercises. Then do the Data61 course if you want more exercises that are more challenging

Go to your local Haskell or FP Meetup and network. The talks will be helpful and there will be people there you can ask questions.

Oh you're so fucking smart. Then explain why we see trillions of tutorials about monads online.
Read this if you haven't already: dev.stephendiehl.com/hask/#monads

The reason you aren't as smart as you think you are is because you cannot explain monads to somebody who is a beginner. A lot of people can, but you can't, because you like sniffing your own farts.

Looks like I arrived just on time for the monad slapfight

>My adviser recommends "Introduction to functional programming" by Wadler.

I've met Wadler a week ago, cool dude

Attached: photo6019492044138983619.jpg (959x1280, 145K)

Lmao wtf

Scala is the OOP/FP bastard child. F# is just Ocaml in .NET + good async and unsigned ints - SML functors. It just has support for OOP, but it isn’t forced on you like scala. Indeed the async is implemented via a monad.

>F#
Strict, eager evaluation, has support for lazy constructs, has support for mutable code
>haskell
Non-Strict, lazy evaluation, has some support for strict constructs, mutable code not possible in the traditional sense (monads solved this)

Sidenote, both haskell and F# are influenced by SML, you can see it in the syntax and type inference system

The thing about Haskell is that the type system is more expressive than other FP languages. But that is not what makes it a more complete FP language. Indeed you could have a non FP language like Rust have features like HKT and typeclasses and it still won’t be a FP language

Also it being lazy by default is a huge thing compared to other languages

Github uses haskell github.com/github/semantic

stop implying that understanding a monad (or understanding any other non-trivial concept) is easy

there is absolutely nothing wrong with taking a while to understand something

Oh monadman
homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf

U MENA HASKAL?

So F# isn't functional then?

Very bloated, full of contrived and uninteresting examples, sprinkled with cringeworthy attempts at humor.

Listen to user:
Other than books, the most recommended path is doing the homeworks here: cis.upenn.edu/~cis194/spring13/lectures.html
Reed the relevant recommended bits from LYAH and RWH when necessary. The homeworks are excellent and once you've done all of them properly you'll be in good shape.

After CIS194, you can move on to github.com/data61/fp-course
This gets you to reimplement most common abstract typeclasses, and helps gain fluency with them.

>cannot explain monads to somebody who is a beginner.

oh lol. it is an abstraction which has been successfully used in order to consistently endure an order of evaluation in a lazy language by explicitly defining a transition functions >>= and simultaneously, to define such explicit transition as a type-class, so no two "actions" of different kinds could ever be chained (to be executed eventually). this is it.

later, some narcissistic faggots extended this notion to sum types, to be viewed it as a sort of transition between possible states, so we got the Maybe monad and shit.

again, explicit transition, type-classes guarantee correctness, laws ensure composition.

i don't care what popular hipsters are saying in blog posts

he is actually over-verbose and sloppy for a good mathematician.

David Turner is a real chad among them

... ok great but how will I feed my family?

by writing some Ocaml or Scala for a bank?

but forget about it if you have no degree from a top-tier tech school

yes, it is non-trivial only in involves 3 orthogonal notions (or aspects) namely, composition, and hence monadic laws, polymorphism, and therefore it is defined as a type-class, and abstract data type (surprise! an instance of a monad is an ADT).

all the category theory bullshit is irrelevant in the context of Haskell, and *this* is what you have to understand.

then everything become clear, and the narcissistic bullshit about category theory becomes merely out of context bullshit

Lol there are people who took programming bootcamps and landed jobs at Google and Apple.

What's with the ESL reddit spacing?

Lol there are people who won the lottery too.

[citation needed]

Ditch hasklel and learn the only functional FP which is F#

lel lad

call-by-value languages are not even purely functional. lambda calculus and math in general are call-by-need

scale.ai/blog/scale-engineering-team

How the FUCK do you compete with this shit...

Attached: Terence+Tao++National+Geographic_867ba3a6-f137-4296-8079-d157439d840c-prv.jpg (1200x857, 103K)

impressive. like I said, a MIT degree would open all the doors.

to get into MIT your parents have to pay a substantial amount of money.

and to get into MIT you have to spend your youth with computers and math books instead of being a street dog like me

so, no magic here. basic sociology - good kids have good parents who send them to good schools

could you drop the reddit spacing, nigger

Unless you're a boomer billionaire

Attached: billionaire.png (610x476, 20K)

(S)ML is the godfather of functional programming (untyped shit isn't functional)

this nigga gets it

and Miranda is the grandmother lol

>scale.ai/blog/scale-engineering-team
Wait Tao works for them?!
Game over, this guy is unreal.

Monads are easy tho. It is literarily "How to chain two things together in a specific order" as a typeclass. There is much beautiful theory behind it, but nobody *needs* it.

> an abstract bullshit theory behind it

fify

>untyped shit isn't functiona

kys pleb.

original lambda calculus are untyped but pure functional (and lazy)

static typing is a useful later addition (and it solves fundamental problems, like the one which is called Russel paradox - not everything could be applied to everything else, like it is in human spoken languages).