# Haskell [[Functional Programming]] [[Programming Languages]] [[Category Theory]] Haskell is a language that I have learnt in the past, albeit not deeply. I really loved [[Standard ML]] when I went through [[BOOK - Modern Compiler Implementation in ML - Andrew W Appel]]. We started working through this book again with Daniel, him in Haskell, me in [[OCaml]], and the operator overladen style turned me off. Now that my theory is a bit more solid, and [[Doom Emacs]] seems to be a much more pleasant environment, I'm ready to take it up again. Maybe I could go through an expensive course like [[Monday Morning Haskell]], or find some concrete idea to just get going. <!-- slide -->[[Monday Morning Haskell]] ## See also - [[Monday Morning Haskell]] - [[Monad Transformers]] ## Books - [[BOOK - Real World Haskell - Bryan O'Sullivan John Goerzen Donald Bruce Stewart]] - [[BOOK - Parallel and Concurrent Programming in Haskell - Simon Marlow]] A self-published book with a lot of examples to learn [[Optics (FP)]]. I started going through it, but stopped at the end of the [[Lenses]] chapter. - [[BOOK - Optics by Example]] 50$! But seems like a lot of practical applications of commonly found abstractions: applicative, combinator, monadic DSL, monad transformer, type-level data. - [Abstractions in Context](https://williamyaoh.gumroad.com/l/CLyzT) A WIP book that seems quite cool: - [Production Haskell by Matt Parsons [Leanpub PDF/iPad/Kindle]](https://leanpub.com/production-haskell) ## Links A really really long guide about all the things you need to know about [[Haskell]], and really not just for starting. - [What I Wish I Knew When Learning Haskell 2.5 ( Stephen Diehl )](http://dev.stephendiehl.com/hask/) A much shorter version of a similar article: - [Things software engineers trip up on when learning Haskell | William Yao](https://www.williamyaoh.com/posts/2020-04-12-software-engineer-hangups.html) A website that contains a big list of all the [[Category Theory]] inspired [[Abstraction|abstractions]] that are commonly used in [[Haskell]]. - [Typeclassopedia - HaskellWiki](https://wiki.haskell.org/Typeclassopedia) A list of [[Databases]] libraries for [[Haskell]]: - [Which type-safe database library should you use? | William Yao](https://www.williamyaoh.com/posts/2019-12-14-typesafe-db-libraries.html) Apparently [[OpalEye]] is a good library, that uses [[Profunctors]]. In general [[William Yaoh]] has quite the nice [[Blog]] about Haskell: - [Welcome to all those learning Haskell | William Yao](https://www.williamyaoh.com/) ## Courses - [https://typeclasses.com/courses](https://typeclasses.com/courses) - [[Monday Morning Haskell]] ## Tools `hlint` suggest different improvements to haskell code. I wonder if there is an automatic integration into [[Doom Emacs]]. - [GitHub - ndmitchell/hlint: Haskell source code suggestions](https://github.com/ndmitchell/hlint) - [[Monday Morning Haskell]] [Haskell program coverage - HaskellWiki](https://wiki.haskell.org/Haskell_program_coverage)