'''lecture_34_sum_list.py
Use recursion to sum a list
Oliver W. Layton
CS 151: Computational Thinking: Visual Media
Spring 2021
'''


def sum(theList):
    if len(theList) == 1:
        ans = theList[0]
    else:
        ans = theList[0] + sum(theList[1:])
    return ans


if __name__ == '__main__':
    # print(sum([1, 4, 3]))  # 8
    # print(sum([1, 4, 3, 2]))  # 10
    print(sum([4]))  # 4
    print(sum([4, 3]))  # 4

    # 1st call: myList = [4, 1, 3], myList[0] = 4, myList[1:] = [1, 3]
    # 2nd call: myList = [1, 3], myList[0] = 1, myList[1:] = [3]
    # 3rd call: myList = [3], myList[0] = 3, -> we hit return myList[0] and backtrack
