How are you supposed to program Haskell?
What is the point of all the abstract concepts that Haskell has?
>>59648920
The only point of haskell is to learn what a monad is.
By the time you learn it, you are simultaneously rendered unable to explain it to anyone who doesn't know what a monad is. Hence the proliferation of shitty monad tutorials everywhere.
Learn the way of the monad anon, become one of us.
>>59648920
Stallman's language of choice isn't Haskell. It is Lisp.
>>59648976
Just esoteric my life up, nig
>>59648963
> automatic bignums
> javascript comparisons
...what is this language?
>>59649166
enlightenment
>>59648920 (OP)
The point of a functional language is it has a direct connection to math where you are essentially doing the same thing as you are in highschool algebra which is computing a bunch of variables just with a richer variety of primitives.
Your program specification is a bunch of types "This function consumes a real and produces an integer". Then the code you write for that function is the proof via induction that said specification is correct.
The data structures you typically use are persistent, meaning new values are created when you traverse and update a tree you aren't destroying any data. However many, many other algebraic data structures can be used w/a functional lang basically you can invent as many as you want if you take a homology class or invent some wacky commutative/algebraic geometric structure and use Invariant Theory on it to prove it's correct. A lot of people claim this is 'impossible' to program this way but you do it all on a piece of paper before hand, can easily pseudocode the types and algorithms, and make plenty of adjustments further splitting into self contained modules before ever touching a keyboard. We spent months once with a whiteboard planning, and running paper complex analysis on our "program" because it's simply types. The actual implementation took only an hour or so with 8 of us making up the modules, we basically just followed the final draft of the paper spec. If you're like me you used to sit in a chair for 12hrs a day with headphones on glued to two or three screens spending forever to build shit. I have one tiny screen now and spend hardly anytime in front of it.
tl;dr I would never program any other way for something critical, I'll use AWK to script my terminal to do everyday shit but an ATM program or bank backend would never in a million years leave that up to mutable data with side effects.
If you want to try it do some of these courses
https://functionalcs.github.io/curriculum/