The functional programming model