R&S HUI wrote: > Memoization can be introduced as an adverb, so that > instead of the system guessing whether a verb can be > memoized, you'd say: > > v M. > > v M. would give exactly the same results as v but would > be memoized. > Roger:
I think this would be an excellent idea. Brian Schott emailed me a link to a previous post along these lines, and I hope this gets seriously considered for a future version of J. To me, the main benefits would be: 1. In interactive use, a memoized verb can return the results of a long calculation immediately, even if the result has not been assigned to a name. 2. Recursive functions can be written more directly. 3. There is some prospect of being able to do symbolic calculations efficiently. In addition, a memoization facility is increasingly seen as important in mainstream languages. > I don't see that comparison tolerance necessarily presents > insurmountable difficulties. The global tolerance is > problematic, but the v!.t version should be fine. > I mentioned comparison tolerance because you have to decide whether v y has been previously computed, and so you need to compare y with arguments for which the value of v is known. If v!.t sets this argument tolerance, then I do not see a problem. As Jose Mario Quintana points out, functions without side effects are good candidates for parallelism. J already encourages not having side effects, since the order of cells to which a verb is applied is unspecified. This feature of functional programming is something I do not know how to directly exploit. > What are the problems with ? for functional programming, > other than the definitional one? Whatever functional > programming is, it would be poorer if it can not > accommodate ? (rule out Monte Carlo methods, etc.) > There are certainly ways around ?, as Raul Miller has mentioned. In my original post I was indicating that naively used, ? has two strikes against it: its value does not just depend on its arguments, and it has side effects. I am no functional programming zealot, but I think J can take advantage of some of its ideas, just as John Backus took some inspiration for FP from APL. Best wishes, John ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
