Convert a list of strings to a list of certain form, specified by *f*.

    :param strings: a list of string
    :param f: a function that converts your string
    :return: type undefined, but specified by `to_type`

    .. doctest::

        >>> strings_to_(['0.333', '0.667', '0.250'], float)
        [0.333, 0.667, 0.25]

def strings_to_(strings: Iterable[str], f: Callable) -> Iterable[Any]:
    """
    Convert a list of strings to a list of certain form, specified by *f*.

    :param strings: a list of string
    :param f: a function that converts your string
    :return: type undefined, but specified by `to_type`

    .. doctest::

        >>> strings_to_(['0.333', '0.667', '0.250'], float)
        [0.333, 0.667, 0.25]
    """
    if not all_string_like(strings):
        raise TypeError('All have to be strings!')
    # ``type(strs)`` is the container of *strs*.
    return type(strings)(map(f, strings))