Defines a Queue structure that can be added to the tail, and removed from the head. Anything already in the queue (compared by ID) will not be added again, but a function can be provided that will update the element when it is already present. Includes a 'salience' which allows elements to be promoted through the queue ahead of less salient elements.
Defines a Queue structure that can be added to the tail, and removed from the head. Anything already in the queue (compared by ID) will not be added again, but a function can be provided that will update the element when it is already present. Includes a 'salience' which allows elements to be promoted through the queue ahead of less salient elements.
(drain queue)
Pulls everything off a queue into a seq.
Pulls everything off a queue into a seq.
(insert-by s salience e)
Inputs: [s :- [s/Any] salience :- (s/maybe (=> s/Num s/Any)) e :- s/Any] Returns: [s/Any]
Inputs: [s :- [s/Any] salience :- (s/maybe (=> s/Num s/Any)) e :- s/Any] Returns: [s/Any]
(new-queue)
(new-queue salience-fn id-fn)
(new-queue)
(new-queue G__8075 G__8076)
Inputs: ([] [salience-fn :- (s/maybe (=> s/Num s/Any)) id-fn :- (=> s/Any s/Any)])
Create an empty queue. When called without arguments, salience is ignored, and update and ID are just identity.
Inputs: ([] [salience-fn :- (s/maybe (=> s/Num s/Any)) id-fn :- (=> s/Any s/Any)]) Create an empty queue. When called without arguments, salience is ignored, and update and ID are just identity.
(add queue element)
(add queue update-fn element)
Adds an element to the queue if it isn't already present, returning the new queue. Uses update-fn on the element if it is already in the queue
Adds an element to the queue if it isn't already present, returning the new queue. Uses update-fn on the element if it is already in the queue
(head queue)
Returns the head of the queue
Returns the head of the queue
(pop queue)
Removes the head from the queue
Removes the head from the queue
(q-count queue)
Returns the number of items in the queue
Returns the number of items in the queue
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close