You could make f throw on success. You'd then simply have f"_1 :: 1, and, assuming f still returns 0 on failure, the result of the entire expression would tell you if there was a success, or if all the coordinates failed.

On Fri, 21 Oct 2022, Ed Gottsman wrote:

Hi.  I’m blanking on something basic and research isn’t helping.  When the 
blindingly obvious solution is revealed I will blame a combination of sleep 
deprivation and senescence.

I’ve got a long list of coordinates ordered by desirability.  I want to invoke 
f (a custom script) with each coordinate in turn.  f may return 0 (failure), in 
which case I want to invoke it again with the next coordinate.  When f 
(eventually) returns 1, I want to terminate—the remainder of the coordinates 
should not be processed.  (Note that the very first invocation of f may return 
1.)

This *almost* feels like ^: in its Do While form.  Almost.  It also feels like 
SCs around list operations (though they seem to be limited to primitives).

Help.

Many thanks.

Ed

Sent from my iPad
----------------------------------------------------------------------
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