def findMinValue(numbers):
    if len(numbers) == 0:
        raise Exception('must pass list with at least one number')

    head = numbers[0]
    tail = numbers[1:]

    if len(numbers) == 1:
        # BASE CASE
        return head
    else:
        # RECURSIVE CASE
        minOfTail = findMinValue(tail)
        if head < minOfTail:
            return head
        else:
            return minOfTail

print(findMinValue([0, 1, 2, 3, 4]))
print(findMinValue([1, 2, 3, 4, 0]))
print(findMinValue([1, 2, 0, 3, 4]))
print(findMinValue([42]))
