Example #1
0
 def flat_m(self, v):
     return call_by_name(v) if self else maybe.Empty()
Example #2
0
 def m(self, v):
     return maybe.Maybe(call_by_name(v)) if self else maybe.Empty()
Example #3
0
 def flat_maybe_call(self, f, *a, **kw):
     return f(*a, **kw) if self else maybe.Empty()
Example #4
0
 def flat_maybe(self, value: 'Maybe'):  # type: ignore
     return value if self else maybe.Empty()
Example #5
0
 def maybe_call(self, f, *a, **kw):
     return maybe.Just(f(*a, **kw)) if self else maybe.Empty()
Example #6
0
 def lift(self, index: int) -> 'maybe.Maybe[A]':
     return ((maybe.Just(self[index])
              if len(self) > index else maybe.Empty()) if index >= 0 else
             (maybe.Just(self[index])
              if len(self) >= -index else maybe.Empty()))
Example #7
0
 def maybe(self, value):
     return maybe.Maybe(value) if self else maybe.Empty()
Example #8
0
 def tail(self) -> 'maybe.Maybe[List[A]]':
     return maybe.Empty() if self.empty else maybe.Just(self[1:])
Example #9
0
 def init(self) -> 'maybe.Maybe[List[A]]':
     return maybe.Empty() if self.empty else maybe.Just(self[:-1])
Example #10
0
 def find_map(self, fa: List[A], f: Callable[[A], Maybe[B]]) -> Maybe[B]:
     for el in fa:
         found = f(el)
         if found.present:
             return found
     return maybe.Empty()
Example #11
0
 def tail(self) -> maybe.Maybe['List[A]']:
     return maybe.Empty() if self.empty else maybe.Just(self[1:])
Example #12
0
 def init(self) -> maybe.Maybe['List[A]']:
     return maybe.Empty() if self.empty else maybe.Just(self[:-1])