functional programming view 3