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