:sig
template<typename F> StringList StringList::filter(F f) const

:params
f : predicate called with each string
return value : new list containing items where `f(item)` is true

:content
Returns a new `StringList` containing the original items for which the predicate returns true. Order is preserved.

:example
StringList routes = split("home,admin,docs", ",");
StringList visible = routes.filter([](String item) { return(item != "admin"); });
print(join(visible, ","), "\n");

:see
>types
0_StringList
2_StringList_map
2_StringList_some
2_StringList_every
