Functional Programing with Scala