Removes an item from a collection, and returns it.
The simplest way to call this function is
(remove! coll key). If the index
key is not
present, it's an error.
? special syntax can be used to permit missing items:
(remove! coll (? key)).
In that case, if the index
key is not present, the function will succeed and return
coll is a deque, slicing syntax is supported:
(remove! coll 2 :).
This will remove all elements with an index of 2 or more, returning them as
a freshly-allocated, mutable deque.