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
Futureimplementation: 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.
Monadvs.Applicativedeep 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!