Queue is simple FIFO (first in, first out) datastructure.
Construct Queue containing single value
Queue.toList (Queue.singleton 1) == [ 1 ]Determine if Queue is empty
Queue.isEmpty Queue.empty == True
Queue.isEmpty (Queue.fromList [ 1, 2 ]) == FalseGet size of Queue
Queue.size Queue.empty == 0
Queue.size (Queue.fromList [ 1, 2 ]) == 2Add item to Queue
Queue.size (Queue.enqueue 1 Queue.empty) == 1
Queue.size (Queue.enqueue 1 (Queue.fromList [ 1, 2 ])) == 3Take item from Queue
Queue.dequeue Queue.empty == ( Nothing, Queue.empty )
Queue.dequeue (Queue.fromList [ 1 ]) == ( Just 1, Queue.empty )Ask for front item without removing it from Queue
Queue.front Queue.empty == Nothing
Queue.front (Queue.fromList [ 1, 2 ]) == Just 1Build Queue from List
Queue.fromList [] == Queue.empty
Queue.size (Queue.fromList [ 1, 2, 3 ]) == 3Convert Queue to List
Queue.toList (Queue.fromList []) == []
Queue.toList (Queue.fromList [ 1, 2, 3 ]) == [ 1, 2, 3 ]Map function over Queue
Queue.toList (Queue.map identity (Queue.fromList [ 1, 2 ])) == [ 1, 2 ]
Queue.toList (Queue.map ((+) 1) (Queue.fromList [ 1, 2 ])) == [ 2, 3 ]Filter items items in Queue
Queue.toList (Queue.filter identity (Queue.fromList [ True, False ])) == [ True ]
Queue.toList (Queue.filter ((<) 1) (Queue.fromList [ 1, 2 ])) == [ 2 ]Update value at the front of the queue
Queue.toList (Queue.updateFront (Maybe.map (\x -> x + 1)) (Queue.singleton 3)) == [ 4 ]
Queue.toList (Queue.updateFront (Maybe.map (\_ -> Just 42)) Queue.empty) == [ 42 ]
Queue.toList (Queue.updateFront (Maybe.map (\_ -> Nothing)) (Queue.singleton 3)) == []
Equality checks (
==) onQueueare unreliable due to dynamic distribution of elements.If you need equality checks use
toList.