Version: 4.2.1.5
Functional Batched Deque
A functional deque based on Okasaki’s work and Jens Axel Søgaard’s code.
(require (planet jaymccarthy/batched-deque)) |
(deque? v) → boolean? |
v : any/c |
Tests deque-ness.
non-empty-deque/c : contract? |
A contract for non-empy deques.
deque-empty : deque? |
An empty deque.
(deque-empty? dq) → boolean? |
dq : deque? |
Returns true if dq is empty.
(deque-unshift v dq) → non-empty-deque/c |
v : any/c |
dq : deque? |
Returns a deque that is the same as dq except that it starts with v.
(deque-push v dq) → non-empty-deque/c |
v : any/c |
dq : deque? |
Returns a deque that is the same as dq except that it end with v.
(deque-shift dq) → deque? |
dq : non-empty-deque/c |
Returns a deque that is the same as dq except it is missing the first element.
(deque-pop dq) → deque? |
dq : non-empty-deque/c |
Returns a deque that is the same as dq except it is missing the last element.
(deque-last dq) → any/c |
dq : non-empty-deque/c |
Returns the last element of dq.
(deque-first dq) → any/c |
dq : non-empty-deque/c |
Returns the first element of dq.
(deque-elements dq) → (listof any/c) |
dq : deque? |
Returns elements of dq as a list.
(deque-map f dq) → deque? |
f : (-> any/c any/c) |
dq : deque? |
Maps f over dq, returning a new deque.
(deque-length dq) → exact-nonnegative-integer? |
dq : deque? |
Returns the number of elements in dq.