********************* loaddefs link d_Qndfs 'types nested.ndf' - defines nested data [lay, basic test]s returns null it condition is true (not l!) +-----+ Setup (kind of like header info) Predefine local ops to avoid sequencing problems with initial qnial loaddefs ToDos +-----+ isTypNdx[IntL, Str] - @@ indexing for nrys returns OR[null (true), faultL] isTypNdxInt IS OP ndxInt - ensure ndxInt is correct format for nry @@ indexing note that atomic Int passes as an ndxInt! isLayNdxStr IS OP ndxStr - ensure ndxStr is correct format for nry @@ indexing +-----+ isLayNry[, Atm, Itm, Nlc, Sng, Sol, Sub, etc] - returns OR[null (true), faultL] : focus is on basic structural types, [A, AA] for delving into first 2 levels of nry isLayNlc IS OP nlc - ensure nlc is correct format isLayNry IS OP nry - ensure nry is compatible with address optrs nry : cannot use addresses with nry is[Null, Fault, Atm, Solitnry, Single] isLayNryNdx IS OP nry ndx - test if ndx conforms to format of a full slice ndxInt is assumed problem: if the "endPoint" isFault nry@idx, this test will fail but it shouldn't! isLayNryItm IS OP nry itm - ensure itm is compatible with address optrs, I can't think of any faults other than looking for null isLayNryPat IS OP nry pat - ensure pattern (sub) is compatible with address optrs pat has nulls for "don't care" itms, can fit subIrr (irregular) : non-rectangular sub want to regexpr capability in future I define patterns as "special" subs, so same tests apply isLayNryPL IS OP nryPairL - check if nryPairs of same valence??? isLayNryNlc IS OP nry nlc - ensure nlc is compatible with nry isLayNrySub IS OP nry sub - check [nry, sub] compatible (not used) not created: just get ndx1stL, and check for OR[ary_hasFaults, ndx1stL] +-----+ nry_[atm, itm, sub]_in - returns OR[null, faultL], nested @@pth : 02Dec2021 missing nlc nry_atm_in IS OP nry atm - whether atom is itm of nry nry_atmA_anyIn IS OP nry atmA - boolean indication of whether any of atmATop are in strA nry_itm_in IS OP nry itm - whether item is in 1st-level of nry nry_itmA_anyIn IS OP nry itmA - boolean version whether any of atmATop are in nry because itmA_anyIn_nry does NOT use grep, it easily handles '$.*/[\]^' characters, nry_sub_in IS OP nry sub - may be better to use?: nry_sub_get_ndxL (more general) returns OR[null (true), faultL] nry_subA_anyIn IS OP nry subA - returns null (true) if ANY of subA are in nry +-----+ _chkAppOp : nry_[ndx, itm, sub, nlc] : check args, apply opPhr if fit often just does compatibility check, but can do more ndxInt_chkAppOp IS OP ndxInt optrPhr - returns OR[op result, faultL] ndxStr_chkAppOp IS OP ndxStr optrPhr - returns OR[op result, faultL] ndx_idx_chkAppOp IS OP ndx idx optrPhr - returns OR[op result, faultL] nry_ndx_chkAppOp IS OP nry ndx optrPhr - returns OR[op result, faultL] nry_ndx_chkAppOp IS OP nry ndx optrPhr - returns OR[op result, faultL] nry_ndxA_chkAppOp IS OP nry ndxA optrPhr - returns OR[op result, faultL] nry_itm_chkAppOp IS OP nry itm optrPhr - returns OR[op result, faultL] nry_nlc_chkAppOp IS OP nry nlc optrPhr - nry_sub_chkAppOp IS OP nry sub optrPhr - higher axes are added to sub so (= EACH valence sub nry) (i.e. same dimensionality) nry_sub_makeVlcSame_chkAppOp IS OP nry sub optrPhr - higher axes are added to sub so (= EACH valence sub nry) (i.e. same dimensionality)