In functional programming, we use the concepts of mathematical functions as a way of expressing the logic of our program. The program provides a mathematical function to perform the computation, and it produces results independent of the state of the program.