functional programming tasks