Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
Katharos 1.0.1
Logo
Katharos 1.0.1

Tutorials

  • Tutorials
    • Getting Started with Katharos
    • Handling Null Values with Maybe
    • Build a Data Processing Pipeline with Functors
    • Demonstrating Monadic Computations Using Maybe Monad
    • Combining Multiple Monadic Values with Do Syntax
    • Build a User Registration System with Result
    • Working with Immutable Lists
    • Sequencing Side Effects with IO
    • Building Reusable Functions with compose and curry

How-To Guides

  • How-To Guides
    • How to Handle Null Values with Maybe
    • How to Handle Errors Without Exceptions
    • How to Chain Monadic Operations
    • How to Use Do-Notation
    • How to Refactor Bind Chains to Do-Notation
    • How to Implement a Custom Semigroup and Monoid
    • How to Implement a Custom Functor, Applicative, and Monad
    • How to Manage Side Effects with IO

Reference

  • API Reference
    • Algebra Module
    • Types Module
    • Functools Module
    • Syntax Sugar Module
    • Type Hierarchy Reference
    • Operator Reference

Explanation

  • Explanation
    • Why Functional Programming in Python?
    • The Mathematics of Semigroups and Monoids
    • Just Enough Category Theory to Understand Katharos
    • The Mathematics of Functors
    • The Mathematics of Applicatives
    • The Mathematics of Monads
Back to top
Copyright © 2026, Kamal Farahani
Made with Sphinx and @pradyunsg's Furo