02157 Functional Programming
Functional programming is a declarative programming paradigm, where programs are considered as mathematical functions (side effects, i.e. state changes, are avoided) and the main method of computation is the application of functions to arguments. Functional programming techniques and functional programming languages support the design and construction of programs at a very high level of abstraction. Functional programming techniques once mastered are useful for the design of programs in imperative and object-oriented languages as well. Examples of functional programming languages are:
Functional programming languages are widely used in research projects. In an industrial context, the perspective of using a functional programming language is competition on time-to-market, as program design and construction results in much more succinct programs than those achieved using common main-stream technologies. The development time is much shorter as well. Furthermore, due to excellent compilers, this can be done without compromising efficiency, as the OCaml compiler, for example, can produce native code, which on a number of benchmarks has performed at least as efficient as C. A number companies from the financial sector in USA are currently changing from C to OCaml technology. Some sources to industrial applications of functional programming:
This course is based on F# using the textbook: Introduction to Programming using F#, Michael R. Hansen and Hans Rischel, Cambridge University Press, 2013.
More details about the 2012 version of the course are found here:
Michael R. Hansen, April 24, 2013