Currying in functional programming