This repository contains Functional Programming notes/learning and code examples in my journey to learn functional programming. We would use typelevel ecosystem specifically:
- Cats - A library which provides abstraction for Functional Programming in Scala. Cats library implements multiple TypeClasses and instances such as Monoid, functor, Monad, Applicative etc. It also implements multiple data types and structures.
- Cats-effect - Library which provides implementation of IO Monad and provides building blocks to write concurrent, parallel and scalable applications.
As this repository and code would be in Scala working knowledge of Scala is assumed.
- [Contextual Abstraction]
- Higher Kinded Types
- Type Classes
- Tagless Final
Important TypeClasses:
- [Monoid]
- [Functor]
- [Monad]
- [Applicative]
- [Traverse]
- MonadError & ApplicativeError
- [MonadTransformer]
- [Kleisli]
- [IO Monad]
- [Resource]
- [Supervisor]
- [Fiber]
- [Ref and Defer]
- [TypeClasses]
- Functional Programming in Scala
todo add lambda calculus C C todo - add l