crow/col/deque.crow
(source)
deque
[t
] record
(has non-public fields)
Immutable double-ended queue.
new
[t
] t
deque
(...
a
t
array
)
Deque containing the given elements.
to
[t
] t
deque
(a
t
array
)
to
[t
] t
array
(a
t
deque
)
is-empty
[t
] bool
(a
t
deque
)
true
iff a.size == 0
.
This is O(1).
size
[t
] nat64
(a
t
deque
)
Number of elements in the deque.
This is O(n).
~
[t
] t
deque
(a
t
deque
, value
t
)
Pushes an element on the right.
~
[t
] t
deque
(value
t
, a
t
deque
)
Pushes an element on the left.
pop-left
[t
] (t
, t
deque
) tuple2
?
(a
t
deque
)
Remove a value from the left.
Returns an empty option iff a
is empty.
pop-right
[t
] (t
deque
, t
) tuple2
?
(a
t
deque
)
Remove a value from the right.
Returns an empty option iff a
is empty.