Complete basic functional programming