Talk:Function-level programming

Latest comment: 4 years ago by 192.188.255.89 in topic Misleading terms

Untitled edit

What would be an example of a function-level definition which is not the lifted image of a value-level one?

I am not sure there is a reasonable answer to that question. It is more of a notational and usage question. Composition can only be defined (other than as a primitive) as (f . g)(x) = f(g(x)). The notations are equivalent semantically, but computationally and for optimisation and implementation they may be different - function-level programming will clearly have composition as a primitive. Justinc 23:16, 4 August 2005 (UTC)Reply
In general, program A and program B are significantly different when they reflect a different architecture. This tends to be relevant only for complex programs with significant structure, which have been derived independently in different contexts. This is where you would tend to see function-level programs which are not simple translations of value-level programs. Of course, once a design is implemented it will be possible to apply that design in other contexts -- the real issue here is the original time and effort needed to find and implement the design. That said, it's difficult to separate architectural influences from the language and architectural influences specific to function-level programming. This is especially true given that there are so few function-level programming languages. With those qualifiers, the J program to compute arithmetic mean (+/%#) illustrates in a small way how a function-level definition can be different from a typical value-level definition. Here, the absence of explicit variables quickly leads to a definition which works on arbitrarily sized and dimensioned data, with the language, rather than the programmer, defining the function domain. RaulMiller 06:04, 22 March 2006 (UTC)Reply

Did the author really mean bottom-up semantics or did they mean to say bottom-preserving semantics?

After re-reading the entries on the FP programming language and strict functions I think he must have meant bottom-preserving semantics. RaulMiller 06:20, 22 March 2006 (UTC)Reply
I also believe that "bottom-preserving semantics" is what was meant. John Nowak (talk) 02:15, 20 April 2009 (UTC)Reply

It should be mentioned that in the end (the compiled program or similar) its all value level. whether you store data, function pointers etc. pp. so the distinction isnt between the way the programs execute but in how the humans perceive them

There's no reason to mention this. The language is function-level "in the end". Talking about the resulting binary isn't relevant. John Nowak (talk) 02:14, 20 April 2009 (UTC)Reply

Misworded sentence edit

"Yet another is the existence of function level definitions that are not the lifted (that is, lifted from a lower value-level to a higher function-level) image of any existing value-level one: these (often terse) function-level definitions represent a more powerful style of programming not available at the value-level and, arguably, are often easier to understand and reason about."

Right after the closing parenthesis. -- Dougher (talk) 06:30, 30 April 2010 (UTC)Reply

Misleading terms edit

The paper by John Backus makes no mention of Function-level programming. He simply says Functional programming. Moreover, this wiki page uses the acronym FP, which usually refers to Functional programming. I'm not sure if Function-level programming is any different from Functional programming. If there's a difference, it's not clearly explained in the wiki page. — Preceding unsigned comment added by 182.74.201.106 (talk) 04:06, 9 April 2017 (UTC)Reply

First, the page doesn't use the acronym "FP" for "functional programming" anywhere. It refers to Backus's specific language named "FP" repeatedly, but that's a different thing. The first use of "FP" is linked, and explained, and I can't find anywhere in the article where it's ambiguous what's being referred to.
Second, Backus does simply say "functional programming", but he sets it up as a contrast with the "applicative programming" of languages like Lisp, ML, etc., and of the Lambda calculus. So, obviously, when he says "functional programming", he's not using the term the same way you are. Because most people use the term the way you do, rather than the way Backus does, he had to come up with a new term—which is why the successor to FP (short for "Function Programming") was called FL (short for "Function Level").
Finally, most of the text on the page is devoted to a section called "Contrast to functional programming", and most of the remainder is devoted to describing the purported algebraic advantages of function-level vs. value-level/applicative programming in modeling syntax. So if you can't tell if there's a difference, you must not have read beyond the first sentence or so. --192.188.255.89 (talk) 01:25, 23 August 2019 (UTC)Reply