Imperative Functional Programming U. S. REDDY Department of Computer Science, University of Illinois at Urbana-Champaign, Urbana, IL reddy@cs.uiuc.edu Our intuitive idea of a function is that it describes the dependence of one quantity upon another. There is no condition on what kind of quantities are involved. They could be integers, Turing machines, binary search trees, window hierarchies, digital circuits, or whatever. The possibilities are endless. The idea of functional programming is that functions are described applicatively, that is, by plugging together other functions. This recursive dependence of functions on other functions bottoms out at the primitive operators. If the primitive operators are effective, that is, can be used to calculate, compute, construct, or build one quantity from another, then all functions expressed applicatively are similarly effective. Imperative functional programming is the application of these ideas to imperative computations. Quantities here are imperative computations and functions denote dependences between imperative computations. Effectiveness means that a computation derived from a function can be effectively carried out whenever the input computations can be effectively carried out. It is often felt that imperative computations and functional programming are in conflict. Adding imperative computations to a functional programming language is found to
/lp/association-for-computing-machinery/imperative-functional-programming-oPFa00QcGu