I am with you. Haskell is an brick wall of monads and other really hard words... I often wonder if Haskell is useful for anything and then I see articles like this... someone must be using it.
> I am with you. Haskell is an brick wall of monads and other really hard words...
I understand the feeling, that's why it's very necessary to either find a very good teaching resource.
I'm currently reading "A Type of Programming" for fun and it kind of reminds me of "Why's poignant guide to Ruby in presentation (sadly sans artful illustrations)":
The caveat (because there usually is one) being that it's 720 pages long. That's another tradeoff though.. you either get something that gets you all the way from point A to point B and it's very long or you get something very dense that requires lots of hammock time to derive the intuition yourself.
> I often wonder if Haskell is useful for anything
Also, I'll note that I write Haskell for my day job to combat your though of "wonder if Haskell is useful for anything".
Both pandoc and shellcheck are written in Haskell, so the world's getting mileage out of it. Granted, the author of shellcheck has mentioned that he might not have chosen Haskell if he could do it over, but I think that was mostly about it being hard to get contributors (take that with a grain of salt; I'm too lazy to look it up).
That is very cool, but let me ask here: Is there a good resource, when it comes to code generation for register architectures?
I know that this would be related to instruction selection and register allocation (where at some point you map an infinite register architecture - like LLVM - to a finite real-world machine), but I never found a nice example.
A bit off topic, but is there any guide/tutorial for using the LLDB API? The official doxygen-generated documentation doesn't seem to provide any hints about how to get started with the SB API.
Really enjoying this. For others, here's the series so far:
Part 0: Introduction https://blog.josephmorag.com/posts/mcc0/
Part 1: Parsing https://blog.josephmorag.com/posts/mcc1/
Part 2: Semantic Analysis https://blog.josephmorag.com/posts/mcc2/
Part 3: Generating LLVM https://blog.josephmorag.com/posts/mcc3/