Backus calls functional programming applicative programming; his function-level programming is a particular, constrained type. A key distinction from functional languages is that Backus' language has the following hierarchy of types: atoms functions, which take atoms to atoms Higher-order functions (which he calls "functional forms"), which take one or two functions to functions ...and the only way to generate new functions is to use one of the functional forms, which are fixed: you cannot build your own functional form (at least not within FP; you can within FFP (Formal FP)). This restriction means that functions in FP are a module (generated by the built-in functions) over the algebra of functional forms, and are thus algebraically tractable. For instance, the general question of equality of two functions is equivalent to the halting problem, and is undecidable, but equality of two functions in FP is just equality in the algebra, and thus (Backus imagines) easier. Even today, many users of lambda style languages often misinterpret Backus' function-level approach as a restrictive variant of the lambda style, which is a de facto value-level style. In fact, Backus would not have disagreed with the 'restrictive' accusation: he argued that it was precisely due to such restrictions that a well-formed mathematical space could arise, in a manner analogous to the way structured programming limits programming to a restricted version of all the control-flow possibilities available in plain, unrestricted unstructured programs. The value-free style of FP is closely related to the equational logic of a cartesian-closed category. Example languages The canonical function-level programming language is FP. Others include FL, and J. See also Concatenative programming language Functional programming, declarative programming (compare) Tacit programming Value-level programming, imperative programming (contrast) References External links Function Level Programs As Mathematical Objects from John Backus From Function Level Semantics to Program Transformation and Optimization SpringerLink see point 1.2 and 1.3 Closed applicative languages, FP and FL, in John W. Backus (Publications) or the original Programming Language Semantics and Closed Applicative Languages Instance variables, a way out of the variable abstinence Programming paradigms Programming language theory