I would use a fork, and 'bind' the left argument to the result of f.  There is 
a difficulty, because you can't compose adverbs with verbs.  Perhaps something 
like this:

   c=. (*@] {{x}y}} ,:) f
   c i.10
0 1 2 3 1 2 6 1 2 9

You can get rid of the explicit definition using boxes, if you really care to, 
but I would not.

 -E

On Sun, 29 May 2022, Brian Schott wrote:

> I have a problem similar to the one shown below.
> Both the verbs g and h depend on calculating f first so this seems like an
> inefficient way of doing it where f produces only nonnegative integers from
> its argument.
> Is there a better approach?
>
>   g=:,:f
>   h=:*@f
>   f=: 3&|   NB. not the real f, but f is more compute heavy
>   3 : '(h y)}g y' i.10   NB. an example calculation
> 0 1 2 3 1 2 6 1 2 9
>   ]`h`g } i. 10          NB. another "tacit" calculation
> 0 1 2 3 1 2 6 1 2 9
>
>
>
> -- 
> (B=) <-----my sig
> Brian Schott
> ----------------------------------------------------------------------
> 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