I have not yet seen a widespread use of closures in a language that allowed them where it was a big advantage. I have had a few 'oh cool' closure moments, but so far this has been isolated to specific cases... Like when defining a function explicitly was tiring and interrupted the flow of thought... And also as an alternate way of doing a state machine. Are there any papers or open source examples you could point me to where this style made a big difference to the outcome?
Not trying to be contentious here. Interested. A reason not to adopt closures wide scale would be if you felt you wanted to target a gpu. For me a closure is function+context. You could probably achieve some of this with locales, but you'd need to limit recursive scoping to one level. Does a j path get used to resolve nouns as well as verbs? Perhaps the style could be taken further. Late to the thread. If this is more of a pragmatic discussion, consider interop to your language of choice as a potential pattern. On the J way... I've more often come to appreciate it. For example there is a movement towards immutable structures and Apl has insisted on this for n decades. Someone, what is n? Sent from my iPod On 20 Feb 2013, at 22:27, "William Tanksley, Jr" <[email protected]> wrote: > Raul Miller <[email protected]> wrote: >> How is treating the "purely functional" case as having an element of >> unreality the same as the idea that closures (in a stateful context) >> are purely functional? > > If your definitions have "an element of unreality" they are incomplete > definitions. Unreality is not part of a definition. (Nor is unreality > the function of the subjunctive.) > > If you think closures CAN be used in a functional language, then by > your definition you think a functional language with closures wouldn't > allow mutable state, and that's what Boyko said. If you think closures > cannot be used in a functional language, you haven't said anything to > hint at it -- unless disagreeing with Boyko was how you hinted at it. > > Now, here's an interesting fact... Although some amazing people are > using J to build dynamic functions, J is a descendant of a language > called "FP" (invented by Backus) for which building dynamic functions > was specifically disallowed. I suspect that this is the reason for > some of J's restrictions on what sort of things you can return from a > function. J has an interesting path ahead of it now! We can balance > things out so that functions can return functions, in which case we > can argue about closures; or we can take J back down the FP road, > without closures. (Or we can stay on the same path we're on. I hope we > do either of the three choices with our eyes open.) > > In FP, they call a verb a "function" and an adverb a "functional". > > No, that has nothing to do with our discussion. Except one thing: > closures are impossible in a function-level language. > >> Raul > > -Wm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
