On Fri, Feb 15, 2013 at 12:29 PM, Boyko Bantchev <[email protected]> wrote:
> On 15 February 2013 18:01, Raul Miller <[email protected]> wrote:
>> It seems we differ on the definition of a mathematical "function".
>
> I wonder how you came to this conclusion, since 'mathematical
> functions' were not discussed.

It came about because I have been involved in conversations about
functional programming languages for a couple decades, now, and in my
experience this phrase "functional programming" is a reference to the
use of mathematical functions to reason about and develop programs.
And, that the longer phrase: "functional programming language," refers
to a language designed to favor this approach (using mathematical
functions to reason about and develop programs).

In Haskell, for example, the IO Monad is used to capture the idea that
when using input (or output), "state" can be represented as an
argument for the relevant functions. It does not have to be baked into
the definition of the function, and is separable from the function
itself.

> Apart from that, your statement:
>
>> Here, you have introduced a definition of "function" which conflicts
>> with the usual meaning of the word when people talk about functional
>> programming.
>
> is incorrect, because most functional languages admit stateful
> functions, and, consequently, 'when people talk about functional
> programming', stateful functions are not excluded.

Here, the distinction is that the state is not a part of the function
- it is a parameter which is supplied to the function.

> But most importantly, the appropriateness of your linguistic exercise
> still evades me.  That continuing exercise is irrelevant to my
> argumented observation that considering closures 'incompatible with
> the functional programming model' is incorrect.

Yes... it's typically the case that if people cannot agree on the
meanings of words then the exchange of sentences using those words
does not carry useful meaning.

That said, I do recognize that sometimes people use a word ("function"
in this case) to refer to a keyword in a programming language (for
example, javascript has a "function" keyword). However, that departs
from [my understanding of] the usual meaning of "functional" in the
phrase "functional programming language".

If "functional programming language" meant only that the language had
a keyword which was spelled with those letters in that order it would
not be an interesting topic.

And, of course, this last example could easily be "not what you
meant". But, since you have never told me what you do mean I am left
without any useful approach for understanding the concepts you are
referring to.  I would like it if, at some point, you supplied some
definitions for the meanings of some of the words you use where I have
expressed that I think the relevant definition is different.

Thanks,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to