Skip to content

Monoid

Monoid

Bases: Semigroup[T], Protocol

A type is a Monoid if it is a Semigroup and also implements the empty method.

Source code in funclift/monoid.py
12
13
14
15
16
17
18
class Monoid(Semigroup[T], Protocol):
    """A type is a Monoid if it is a Semigroup and also implements
    the empty method.
    """

    @staticmethod
    def empty() -> T: ...

get_mempty(mcls)

summary

Parameters:

Name Type Description Default
mcls _type_

description

required

Returns:

Name Type Description
_type_

description

Source code in funclift/monoid.py
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def get_mempty(mcls):
    """_summary_

    Args:
        mcls (_type_): _description_

    Returns:
        _type_: _description_
    """

    if mcls == int:
        return 0
    elif mcls == float:
        return 0
    elif mcls == str:
        return ''
    elif mcls == list:
        return []
    elif isinstance(mcls, GenericAlias):
        return []
    else:
        return mcls.empty()