Source code for pymonad.operators.list
# --------------------------------------------------------
# (c) Copyright 2014, 2020 by Jason DeLaat.
# Licensed under BSD 3-clause licence.
# --------------------------------------------------------
""" Adds operators to the List monad. """
from typing import List, TypeVar
import pymonad.list
import pymonad.monad
import pymonad.operators.operators
T = TypeVar("T") # pylint: disable=invalid-name
class _List(
pymonad.operators.operators.MonadOperators, pymonad.list._List[T]
): # pylint: disable=protected-access
""" See pymonad.operators.operators and pymonad.list. """
[docs]def ListMonad(*elements: List[T]) -> _List[T]: # pylint: disable=invalid-name
""" Creates an instance of the List monad.
Args:
elements: any number of elements to be inserted into the list
Returns:
An instance of the List monad.
"""
return _List(list(elements), None)
ListMonad.apply = _List.apply
ListMonad.insert = _List.insert