Spaces:
Sleeping
Sleeping
| # 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 <URL> | |
| ``` | |
| 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) | |