What is currying in Scala and how do you implement it