Implementation of some concepts from category theory
pip install pycategories==1.2.0
Pycategories is a Python 3 library that implements ideas from category theory, such as monoids, functors, and monads. It provides a Haskell-influenced interface for defining instances of those typeclasses and defines several right out of the box, for example the Maybe monad:
>>> from categories import apply >>> from categories.maybe import Just, Nothing >>> f = Just(lambda x: x ** 2) >>> x = Just(17) >>> apply(f, x) Just(289) >>> apply(f, Nothing()) Nothing
Or to define your own instance of a typeclass:
>>> from categories import mappend, mempty, monoid >>> monoid.instance(dict, lambda: {}, lambda a, b: dict(**a, **b)) >>> mappend({'foo': 'bar'}, {'rhu': 'barb'}) {'foo': 'bar', 'rhu': 'barb'}
pip install pycategories
To clone the repo and install dependencies for development:
git clone https://gitlab.com/danielhones/pycategories cd pycategories pip install -e .[dev]
Pycategories is licensed under the MIT License
Documentation is available at pycategories.readthedocs.io