Functional Approach to Programming