Pure functions in APL and J

Any expression in combinatory logic made up of combinators and variables can be abstracted into a pure combinator expression applied to a sequence of variables. Because there are great similarities between combinators and certain APL operators, a similar result obtains in many APL dialects. However, rewriting arbitrary APL expressions as pure functions requires new operators, not provided as primitives by any dialect. This paper defines functional completeness, gives a construction for achieving it, proves a conjecture of Kenneth Iverson that J is functionally complete, and shows how closely the major APL dialects have approached these conditions.

[1]  J. Philip Benkard Nonce Functions , 1990, APL.

[2]  A. Church The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies) , 1985 .

[3]  M. Schönfinkel Über die Bausteine der mathematischen Logik , 1924 .

[4]  A. Graham APLO: a simple modern APL , 1989 .

[5]  K. Gödel Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I , 1931 .

[6]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[7]  Emil L. Post Formal Reductions of the General Combinatorial Decision Problem , 1943 .

[8]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[9]  J. W. Backus,et al.  Can programming be liberated from the von Neumann style , 1977 .

[10]  Kenneth E. Iverson,et al.  Phrasal Forms , 1989, APL.

[11]  A. Church The calculi of lambda-conversion , 1941 .

[12]  Hai-Chen Tu Fac: functional array calculator and its application to apl and functional programming (carrier, infinite) , 1986 .

[13]  K. E. Iverson,et al.  Phrasal Forms , 1989, APL.

[14]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[15]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[16]  Edward Cherlin APL Trivia , 1990, APL.

[17]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.