def r_upper(l: list) -> list:
    """Recursively calls str.upper on each string in l."""
    result = []
    if not l:
        return []
    result.append(l[0].upper())
    return result + r_upper(l[1:])