Kitten is a simplified, educational re-creation of the Cats functional programming library for Scala, aiming to provide a hands-on learning experience for understanding core concepts like:
- Categories implemented in type classes:
Functor
,Applicative
,Monad
. - Data types:
Option
,Either
,Future
. - Functional programming patterns: Mapping, flat-mapping, error handling, asynchronous computations.
- Minimalistic
Future
implementation: See how Futures work under the hood with a clear and concise implementation. - Exercises and Examples: Learn by doing with practical exercises that demonstrate how to use Kitten's features effectively.
Monad
vs.Applicative
deep dive: They're both able to combine several containers. Gain understanding of when to use each.- Transforming
List[Future]
toFuture[List]:
: Master techniques for working with collections of asynchronous computations.
Just explore the exercises that is located in the exercise
package.
We can run the exercise method by invoking the desired method in the Main
object.
The exercises package contains a collection of examples showcasing Kitten's capabilities:
Kitten is primarily intended for educational purposes. While it strives to recreate the core concepts of Cats, it's not suitable for production use cases. Let's learn functional programming together, one kitten step at a time!