metaboulie's picture
docs(applicatives): add this notebook to course's README
e3bcacf
|
raw
history blame
2.76 kB

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:

  • Recursion and higher-order functions
  • Category theory fundamentals
  • Functors, applicatives, and monads
  • Composable abstractions for robust code

Timeline & Collaboration

I'm currently studying functional programming and Haskell, estimating about 2 months or even longer to complete this series. The structure may evolve as the project develops.

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

Running notebooks. 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

You can also open notebooks in our online playground by appending marimo.app/ to a notebook's URL: marimo.app/github.com/marimo-team/learn/blob/main/functional_programming/05_functors.py.

Description of notebooks

Check here for current series structure.

Notebook Title Description Key Concepts Prerequisites
05. Functors Category and Functors Learn why len is a Functor from list concatenation to integer addition, how to lift an ordinary function into a computation context, and how to write an adapter between two categories. Categories, Functors, Function lifting, Context mapping Basic Python, Functions
06. Applicatives Applicative programming with effects Learn how to apply functions within a context, combining multiple effects in a pure way. Learn about the pure and apply operations that make applicatives powerful for handling multiple computations. Applicative Functors, Pure, Apply, Effectful programming Functors

Authors.

Thanks to all our notebook authors!