Selection
The function select():
typedef bool (*RWtestCollectable)(const RWCollectable*,
const void*);
RWCollection* select(RWtestCollectable tst, void*);
evaluates the function pointed to by tst for each item in the collection. It inserts those items for which the function returns true into a new collection of the same type as self and returns a pointer to it. This new collection is allocated off the heap, so you are responsible for deleting it when done.