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

Reply via email to