def merge(list1, list2):
    """
    Merge two sorted lists.

    Returns a new sorted list containing those elements that are in
    either list1 or list2.

    This function can be iterative.
    """   
    list3 = list(list1)
    list4 = list(list2)
    
    if len(list3) == 0:
        return list4
    elif len(list4) == 0:
        return list3
        
    result = []
    while len(list3) > 0:
        if len(list4) == 0:
            return result + list3
        if list3[0] <= list4[0]:
            nxt = list3.pop(0)
        else:
            nxt = list4.pop(0)
        result.append(nxt)
        
    return result + list4