week 1 and 2: basics, recursion, tail recursion, fun with purely functional sets