def _drain_find(self, abort: Callable[[A], bool]) -> Maybe[A]:
culprit = Empty()
def gen() -> Generator:
nonlocal culprit
while True:
try:
el = next(self.source)
yield el
if abort(el):
culprit = Just(el)
break
except StopIteration:
break
drained = List.wrap(list(gen()))
self.strict = self.strict + drained
return culprit
评论列表
文章目录