functional data structures exercises