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.