# Learn Functional Programming _🚧 This collection is a [work in progress](https://github.com/marimo-team/learn/issues/51)._ 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 ```bash uvx marimo edit ``` For example, run the `Functor` tutorial with ```bash 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](https://marimo-team.github.io/learn/functional_programming/05_functors.html) ## Collaboration If you're interested in collaborating or have questions, please reach out to me on Discord (@eugene.hs). ## Description of notebooks Check [here](https://github.com/marimo-team/learn/issues/51) for current series structure. | Notebook | Title | Key Concepts | Prerequisites | |----------|-------|--------------|---------------| | [05. Functors](https://github.com/marimo-team/learn/blob/main/functional_programming/05_functors.py) | Category Theory and Functors | Category Theory, Functor, fmap, Bifunctor | Basic Python, Functions | | [06. Applicatives](https://github.com/marimo-team/learn/blob/main/functional_programming/06_applicatives.py) | Applicative programming with effects | Applicative Functor, pure, apply, Effectful programming, Alternative | Functors | **Authors.** Thanks to all our notebook authors! - [métaboulie](https://github.com/metaboulie) **Reviewers.** Thanks to all our notebook reviews! - [Haleshot](https://github.com/Haleshot)