applicative style programming, program transformation, and list operators
An important feature of the applicative style is the use of operators that package common patterns of computation. For example, the list operator map applies a function to every element of a list. Practical use of this style has been hampered by the fact that it can be very inefficient to execute. One remedy for this situation is to use source-to-source program transformation to convert applicative style programs to more efficient equivalents. This paper examines how list operators can be used to guide the transformation process. It describes a small set of list operators that possess a complete set of transformation rules, allowing transformations to be performed very efficiently. Whereas most previous transformation methods resemble proofs, this transformation method resembles algebraic manipulation.
program program transformation operability feature use packaging pattern computation examples functional practical efficiency situated paper process rules method manipulation