métaboulie
Update functional_programming/README.md
30a81e1 unverified

Learn Functional Programming

🚧 This collection is a work in progress.

This series of marimo notebooks introduces the powerful paradigm of functional programming through Python. Taking inspiration from Haskell and Category Theory, we'll build a strong foundation in FP concepts that can transform how you approach software development.

What You'll Learn

Using only Python's standard library, we'll construct functional programming concepts from first principles.

Topics include:

  • Currying and higher-order functions
  • Functors, Applicatives, and Monads
  • Category theory fundamentals

Running Notebooks

Locally

To run a notebook locally, use

uvx marimo edit <URL> 

For example, run the Functor tutorial with

uvx marimo edit https://github.com/marimo-team/learn/blob/main/functional_programming/05_functors.py

On Our Online Playground

You can also open notebooks in our online playground by appending marimo.app/ to a notebook's URL like:

https://marimo.app/https://github.com/marimo-team/learn/blob/main/functional_programming/05_functors.py

On Our Landing Page

Open the notebooks in our landing page page here

Collaboration

If you're interested in collaborating or have questions, please reach out to me on Discord (@eugene.hs).

Description of notebooks

Check here for current series structure.

Notebook Title Key Concepts Prerequisites
05. Functors Category Theory and Functors Category Theory, Functor, fmap, Bifunctor Basic Python, Functions
06. Applicatives Applicative programming with effects Applicative Functor, pure, apply, Effectful programming, Alternative Functors

Authors.

Thanks to all our notebook authors!

Reviewers.

Thanks to all our notebook reviews!