exercise 5.2 drop implemented
exercise 5.3 takeWhile implemented