module fifo¶
- class pythonic_fp.queues.fifo.FIFOQueue(*dss: Iterable)¶
Stateful First-In-First-Out (FIFO) Queue data structure.
O(1) pops
O(1) amortized pushes
O(1) length determination
in a Boolean context, truthy if not empty, falsy if empty
will automatically increase storage capacity when needed
neither indexable nor sliceable by design
- Parameters:
dss – Takes 1 or 0 iterables, initializes items in natural FIFO order.
- Raises:
ValueError – If more than 1 iterable is given.
- __init__(*dss: Iterable) None¶
- Parameters:
dss – Takes 1 or 0 iterables, initializes items in natural FIFO 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 FIFOQueue.
- Parameters:
ds – Items to be pushed onto FIFOQueue.
- pop() MayBe¶
Pop oldest data item off of FIFOQueue.
- Returns:
MayBe of popped data item if queue was not empty, empty MayBe otherwise.
- peak_last_in() MayBe¶
Peak at newest item on queue.
- Returns:
MayBe of newest item on queue, empty MayBe if queue empty.
- peak_next_out() MayBe¶
Peak at oldest data item on queue.
- Returns:
MayBe of oldest 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 FIFOQueue in natural FIFO Order, oldest to newest.
- 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.