Array processing, functional programming, lambda calculus, reduction machines
Why do functional languages have more difficulties with arrays than procedural languages? The problems arising in the designing of functional languages with arrays and in their implementations are manifold. They can be classified according to 1) first principles, 2) semantics, 3) pragmatics, and 4) performance. This paper attempts to give an outline of the issues in this area, and their relation to the lambda calculus. The lambda calculus is a formal system and as such seemingly remote from practical applications. However, specific representations and implementations of that system may be utilized to realize arrays such that progress is made towards a compromise of 1) adhering to first principles, 2) clear semantics, 3) obvious pragmatics, and 4) high performance. To be more specific, a form of the lambda calculus which uses a particular representation of variables, namely De Bruijn indices, may be a vehicle to represent arrays and the functions to manipulate them.
Berkling, Klaus, "Arrays and the Lambda Calculus" (1990). Electrical Engineering and Computer Science Technical Reports. 93.