(a,a=.?@#) is a verb, namely (?@# , ?@#). In this expression a is set to the 
_verb_ ?@# and then train (a,a) is evaluated.

In the second case a is set to the _result_ of ?@# and then (a,a) is evaluated. 
To do this tacitly:

(] , ]) @ (?@#)

or more concisely

,~@?@#

or equivalently (how I would write it)

2 $ ?@#

As Henry said, to store an intermediate value in a verb's evaluation for use 
_after_ it's application, you must use an explicit verb, for example:

,~ @ (3 : 'a=: y') @ (?@#)

Cheers,
Louis

> On 21 Nov 2019, at 03:26, Nimp O <tr...@outlook.com> wrote:
> 
> Hello, simple question.
> 
> This behaviour surprised me.
> 
>   (a,a=.?@#)'01234'
> 2 4
> 
>   3 : 'a,a=.?@#y' '01234'
> 1 1
> 
> Why a is not equal to a in the first case? How can I save the roll as an 
> intermediate result in the tacit version?
> Thanks.
> ----------------------------------------------------------------------
> 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