What you are seeing here is that J needs to understand what names mean before it can act on those names.
A concise summary of the issues is visible here: https://www.jsoftware.com/help/dictionary/dicte.htm In 'z; t 4' the evaluation of t 4 corresponds to the second line of the parsing table which you see at the bottom of that page. EDGE+AVN VERB VERB NOUN 1 Monad Here, EDGE+AVN corresponds to z VERB (the left one) corresponds to ; VERB (the right one) corresponds to t and NOUN corresponds to 4 In other words, J's parsing rules mean that it needs to figure out what z is before it can evaluate t 4. Alternatives you might try: z; (t 4) z;] t 4 (z);t 4 I hope this makes sense, -- Raul On Sat, Oct 16, 2021 at 10:14 AM Richard Donovan <rsdono...@hotmail.com> wrote: > > Hi. I write a function t, execute it, then execute it again. > > > On the second execution, I want to display the intermediate result then the > final result > > > I have coded it as below > > > The intermediate result is displayed as the intermediate result of the FIRST > execution > > > I was surprised as I thought J operates from right to left > > > Thanks > > > > > > t=: 13 : 'z=:2*y' > > t 2 > > 4 > > z; t 4 > > +-+-+ > > |4|8| > > +-+-+ > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm