Contrast To Functional Programming
When Backus studied and publicized his function-level style of programming, his message was mostly misunderstood, giving boost to the traditional functional programming style languages instead of his own FP and its successor FL.
Backus calls functional programming applicative programming; his function-level programming is a particular, constrained type of applicative programming.
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.
Read more about this topic: Function-level Programming
Famous quotes containing the words contrast to, contrast, functional and/or programming:
“At this age [912], in contrast to adolescence, girls still want to know their parents and hear what they think. You are the influential ones if you want to be. Girls, now, want to hear your point of view and find out how you got to be what you are and what you are doing. They like their fathers and mothers to be interested in what theyre doing and planning. They like to know what you think of their thoughts.”
—Stella Chess (20th century)
“Happiness aint a thing in itselfits only a contrast with something that aint pleasant.... And so, as soon as the novelty is over and the force of the contrast dulled, it aint happiness any longer, and you have to get something fresh.”
—Mark Twain [Samuel Langhorne Clemens] (18351910)
“Stay-at-home mothers, . . . their self-esteem constantly assaulted, . . . are ever more fervently concerned that their offspring turn out better so they wont have to stoop to say I told you so. Working mothers, . . . their self-esteem corroded by guilt, . . . are praying their kids turn out functional so they can stop being defensive and apologetic and instead assert See? I did do it all.”
—Melinda M. Marshall (20th century)
“If there is a price to pay for the privilege of spending the early years of child rearing in the drivers seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.”
—Melinda M. Marshall (20th century)