Skip to content
/ kitten Public

Tiny reimplementation of Cats and Scala standard library.

Notifications You must be signed in to change notification settings

arinal/kitten

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kitten: A Tiny Cats Re-Creation for Educational Purposes

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.

Key Features

  • 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] to Future[List]:: Master techniques for working with collections of asynchronous computations.

Getting Started

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:

Disclaimer

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!

About

Tiny reimplementation of Cats and Scala standard library.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages