Source code for redex.combinator._drop

"""The drop combinator."""

from redex.function import Signature
from redex.stack import stackmethod, verify_stack_size, Stack
from redex.combinator._base import Combinator

# pylint: disable=too-few-public-methods
[docs]class Drop(Combinator): """The drop combinator.""" @stackmethod def __call__(self, stack: Stack) -> Stack: verify_stack_size(self, stack, self.signature) n_in = self.signature.n_in return stack[n_in:]
[docs]def drop(n_in: int = 1) -> Drop: """Creates a drop combinator. Drops some of inputs. >>> from redex import combinator as cb >>> drop = cb.drop() >>> drop(1, 2) == 2 True Args: n_in: a number of inputs. Returns: a combinator. """ return Drop(signature=Signature(n_in=n_in, n_out=0))