More useful to assign a special meaning to "function", I think. Then you can include things like ?, file reads, comparisons (which depend on tolerance), etc.
On Fri, Feb 15, 2013 at 12:08 PM, Devon McCormick <[email protected]>wrote: > One functional language definition of "function" that I've seen is along > the lines of "a function always returns the same result for the same input" > which apparently excludes anything like "?" in J unless we assign a special > meaning to "same". > > > On Fri, Feb 15, 2013 at 2:10 PM, Raul Miller <[email protected]> > wrote: > > > 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 > > > > > > -- > Devon McCormick, CFA > ^me^ at acm. > org is my > preferred e-mail > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
