Spaces:
Sleeping
Sleeping
| # Changelog of the functional-programming course | |
| ## 2025-03-11 | |
| * Demo version of notebook `05_functors.py` | |
| ## 2025-03-13 | |
| * `0.1.0` version of notebook `05_functors` | |
| Thank [Akshay](https://github.com/akshayka) and [Haleshot](https://github.com/Haleshot) for reviewing | |
| ## 2025-03-16 | |
| + Use uppercased letters for `Generic` types, e.g. `A = TypeVar("A")` | |
| + Refactor the `Functor` class, changing `fmap` and utility methods to `classmethod` | |
| For example: | |
| ```python | |
| @dataclass | |
| class Wrapper(Functor, Generic[A]): | |
| value: A | |
| @classmethod | |
| def fmap(cls, f: Callable[[A], B], a: "Wrapper[A]") -> "Wrapper[B]": | |
| return Wrapper(f(a.value)) | |
| >>> Wrapper.fmap(lambda x: x + 1, wrapper) | |
| Wrapper(value=2) | |
| ``` | |
| + Move the `check_functor_law` method from `Functor` class to a standard function | |
| - Rename `ListWrapper` to `List` for simplicity | |
| - Remove the `Just` class | |
| + Rewrite proofs | |