Mapping and Filtering Functions

HHVM 3.6 and above include HH\Asio\v() and HH\Asio\m() to make it easy to wait
on multiple wait handles; it's fairly common to want to combine this with
another option, such as mapping or filtering with an async function.

These functions are named according to their attributes:

First, how they take and return arguments according to types:

v - Vector

m - Map

Then, either one or two letters to indicate the operation:

f - filter

fk - filter with key

m - map

mk - map with keys

Finally, there is optionally a trailing 'w' to indicate that you want
a result or exception wrapper. For 'fw' functions, the behavior is that:

if the filter function returns true, the wrapped element is returned

if the filter function returns false, the element is omitted

if the filter function throws an exception, the wrapped exception is returned

This is also available without a filter or mapping operation - vw() and mw().

Function List

All functions are in the HH\Asio namespace;
v() and m() are built in to HHVM 3.6 and newer.