def until(n, filter_func, v):
    """Build a list: list( filter( filter_func, range(n) ) )

    >>> list( filter( lambda x: x%3==0 or x%5==0, range(10) ) )
    [0, 3, 5, 6, 9]
    >>> until(10, lambda x: x%3==0 or x%5==0, 0)
    [0, 3, 5, 6, 9]
    """
    if v == n:
        return []
    if filter_func(v):
        return [v] + until(n, filter_func, v+1)
    else:
        return until(n, filter_func, v+1)