def delete_at(list, index):
    """
    Return a list with the item at the given index deleted.  If the
    index is out of bounds, return the list unmodified.
    """
    if list == () or index < 0:
        return list
    else:
        head, tail = list
        if index == 0:
            return tail
        else:
            return (head, delete_at(tail, index - 1))