module lifo¶
- class pythonic_fp.queues.lifo.LIFOQueue(*dss: Iterable)¶
Stateful Last-In-First-Out (LIFO) Queue data structure.
O(1) pops
O(1) amortized pushes
O(1) length determination
in a Boolean context, true if not empty, false if empty
will automatically increase storage capacity when needed
neither indexable nor sliceable by design
- Parameters:
dss – Takes 1 or 0 iterables, initializes data in natural LIFO order.
- Raises:
ValueError – If more than 1 iterable is given.
- __init__(*dss: Iterable) None¶
- Parameters:
dss – Takes 1 or 0 iterables, initializes data in natural LIFO order.
- Raises:
ValueError – If more than 1 iterable is given.
- __eq__(other: object) bool¶
Return self==value.
- __repr__() str¶
Return repr(self).
- __str__() str¶
Return str(self).
- push(*ds: D) None¶
Push items onto LIFOQueue.
- Parameters:
ds – Items to be pushed onto LIFOQueue.
- pop() MayBe¶
Pop newest data item off of LIFOQueue.
- Returns:
MayBe of popped item if queue was not empty, empty MayBe otherwise.
- peak() MayBe¶
Peak at newest item on queue.
- Returns:
MayBe of newest item on queue, empty MayBe if queue empty.
- fold(f: Callable[[D, D], D]) MayBe[D]¶
- fold(f: Callable[[T, D], T], start: T) MayBe[T]
Reduces LIFOQUEUE in natural LIFO Order, newest to oldest.
- Parameters:
f – Reducing function, first argument is for accumulator.
start – Optional starting value.
- Returns:
MayBe of reduced value, empty MayBe if queue empty and no starting value given.