********************* loaddefs link d_Qndfs 'arrays nested.ndf' - operators for nested arrays default standard : [ary, nry, sub]Phr, [idx, ndx]IntLL [Phr, IntLL] suffexs are dropped from [op, var]Names these callByName ops should save [huge, redundant] value-passing alternate callBy[Value, Str] ops - [ary, nry, sub]Val, [idx, ndx]Str [Value, Str] suffexs are dropped within op definitions simpler for smaller [nry, sub], not for recursion etc, although I've retained what I did WARNING! use _chkAppOp for developments to [trap, report] errors +-----+ Setup Predefine local ops to avoid sequencing problems with initial qnial loaddefs +-----+ to (conversions) idxIntL_to_idxStr IS OP idxIntL - idxIntL to idxStr format idxStr_to_idxIntL IS OP idxStr - idxStr to idxIntL format nry_ndx_toLocal_nry_ndx_idx IS OP nry ndx - conversion nryVal_ndxInt_toLocal_nry_ndx_idx IS OP nryVal ndxStr - conversion with [nryVal, ndxStr] output ndx_idx_localTo_ndx IS OP ndxLocal idxLocal - conversion ndxStr_idx_localTo_ndx IS OP ndxLocalStr idxLocal - conversion nryShp_subShp_idx1st_get_bolFit IS OP nryShp subShp idx1st - l (true) if shape fits, o (false) otherwise +-----+ callBy[Name, IntLL] : default standard : [ary, nry, sub]Phr, [idx, ndx]IntLL so [Phr, IntLL] suffexs are dropped from [op, var]Names these callByName ops should save [huge, redundant] value-passing nry_ndx_get_itm IS OP nry ndx - returns itm at ndx nryVal_ndxStr_get_itm IS OP nryVal ndxStr - returns itm at ndxStr nry_itm_ndxInn_get_ndxL_recurse IS OP nry itm ndxInn - ONLY for nry_itm_get_ndxL!! recurse nry_itm_get_ndxL in depth, returns OR[null (not found), ndxOut] nry_itm_get_ndxL IS OP nry itm - returns OR(ndxL, faultL) ndxL = all positions of itm in nry, makes use of recursive search nry_sub_get_ndx1stL IS OP nry sub - ndxL of 1st item of sub that "fits" in nested nry "current-depth-ONLY" version, uses ary_sub_get_idx1stL "across-depth-ONLY" version has not been created yet 29Mar2024