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.
- 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.
- map(f: Callable[[D], U]) FIFOQueue ¶
Map f over the FIFOQueue, retain original order.
- Parameters:
f – Function to map over queue.
- Returns:
New FIFOQueue instance.
- 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.
- pop() MayBe ¶
Pop oldest data item off of FIFOQueue.
- Returns:
MayBe of popped data item if queue was not empty, empty MayBe otherwise.
- push(*ds: D) None ¶
Push items onto FIFOQueue.
- Parameters:
ds – Items to be pushed onto FIFOQueue.