I think it would be impossible to do an amendment in place in tacit code, but amendment should still work in a tacit expression, just not in place. But if the result were assigned back to the original variable what will happen? Would the tacit expression prevent it from recognizing the operation as an amendment in place?
On Tue, Jul 8, 2014 at 4:21 PM, Jose Mario Quintana < [email protected]> wrote: > Erling wrote: "It's obviously not possible to do any amendments in tacit > code?" Adding after wards: "A principle of functional programming is you > never modify a variable?" > > > > From my perspective those (rhetorical?) questions are separate. Regarding > the first question, consider the verb (v) that produces the squares of an > amendment produced by the verb amend. For example, > > > > ( v=. *: @: amend f. ) > > *:@:(_: 0&({::)@]`(1&({::)@])`(2&({::)@])} ]) > > > > v (0 1 2 ; 2 3 5 ; 7#9) > > 81 81 0 1 81 4 81 > > > > The verb (v) is tacitly defined (is it not?) and amendment is performed via > } (is it not?); thus the answer to the first question is that it is > possible. Furthermore, the conclusion is reached regardless of what the > meanings of “functional programming” and “variable” might, or might not, > be. (Am I missing something?). > > > On Mon, Jul 7, 2014 at 6:45 PM, Erling Hellenäs <[email protected]> > wrote: > > > Yes, what I said is it seems like a misnomer. Functional J has variables, > > but they are handled by the interpreter? Still they are never changed? > This > > could create a performance problem if you do a lot of small changes to > big > > data structures? It is essential to handle this efficiently? Still J does > > not have lazy execution? The functional transformations Amend does are > > immediately executed? Maybe J sometimes only creates new pointers to old > > static data structures? /Erling > > > > > > On 2014-07-08 00:21, Jose Mario Quintana wrote: > > > >> What variable? Tacit programming does not refer to any arguments > >> explicitly; or, are you saying that “amend” is a misnomer (if so, that > is > >> not my domain)? > >> > >> > >> On Mon, Jul 7, 2014 at 6:07 PM, Erling Hellenäs < > [email protected] > >> > > >> wrote: > >> > >> A principle of functional programming is you never modify a variable? > >>> What > >>> Amend does is create a new variable from other existing variables? > >>> Nothing > >>> is amended? /Erling > >>> > >>> > >>> On 2014-07-07 23:50, Jose Mario Quintana wrote: > >>> > >>> Erling wrote: > >>>> " > >>>> It's obviously not possible to do any amendments in tacit code? It is > >>>> also > >>>> less elegant to pass these three parameters in the two arguments in > >>>> tacit > >>>> code? > >>>> " > >>>> > >>>> Well, Raul and I showed general verbs to perform amendments tacitly. > >>>> Once > >>>> I was as puzzled as you are (were?) but I found enlightenment; maybe > you > >>>> can find it as well: > >>>> http://www.jsoftware.com/pipermail/general/2000-September/004192.html > >>>> > >>>> > >>>> > >>>> > >>>> On Mon, Jul 7, 2014 at 1:53 PM, Erling Hellenäs < > >>>> [email protected] > >>>> wrote: > >>>> > >>>> It's obviously not possible to do any amendments in tacit code? It > is > >>>> > >>>>> also > >>>>> less elegant to pass these three parameters in the two arguments in > >>>>> tacit > >>>>> code? Any opinions about the use of From to do the same thing? > >>>>> > >>>>> > >>>>> NB. x and y are arrays of the same rank > >>>>> NB. q is a boolean, also of this rank > >>>>> NB. The expression merges x and y. > >>>>> NB. Where q is TRUE it picks from y, otherwise x > >>>>> NB. q {"0 1 x,"0 y > >>>>> > >>>>> If q is a vector and if we actually have a variable z of rank > >>>>> (+/q),}.$y > >>>>> we can easily create x from q#^:_1 [ z ? No use for any indexes? > >>>>> > >>>>> /Erling > >>>>> > >>>>> > >>>>> ------------------------------------------------------------ > >>>>> ---------- > >>>>> > >>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> > >>>> > ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > >>> > >>> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
