# Function Definitions Worksheet

def double(num: float) -> float:
    """Return twice the value of num.
    
    >>> double(7.0)
    14.0
    >>> double(5.7)
    11.4
    """
    
    return num * 2


def our_maximum(num1: float, num2: float) -> float:
    """Return the larger of num1 and num2.
    
    >>> our_maximum(1.5, 2.5)
    2.5
    >>> our_maximum(4.0, 3.7)
    4.0
    """
    
    return max(num1, num2)


def max_of_min(num1: float, num2: float, value1: float, value2: float) -> float:
    """Return the maximum of the minimums of the pairs num1 and num2, 
    and value1 and value2.
    
    >>> max_of_min(4.0, 3.7, 6.0, 3.5)
    3.7
    >>> max_of_min(1.0, 1.7, 4.5, 3.0)
    3.0
    """
    
    #a = min(num1, num2)
    #b = min(value1, value2)
    #return max(a, b)
    
    return max(min(num1, num2), min(value1, value2))


# Let's call the function with our first example
print(max_of_min(4.0, 3.7, 6.0, 3.5))

# What happens in the return statement of function call?

# return max(min(num1, num2), min(value1, value2))
# return max(min(4.0, 3.7), min(6.0, 3.5))
# return max(3.7, 3.5)
# return 3.7

# The function call will now return 3.7