As an update, I further updated the PTMD_STD nesting precedence table.
This time I consolidated any levels that I couldn't argue for being separate. Less is more after all. So now there are 17 levels instead of 23.
I also split the large group into 3; it should be fairly clear from looking at them as to how these naturally fell out.
After this, I would be more hard-pressed to consolidate further. Feedback still appreciated, as previously mentioned! -- Darren Duncan ============ PTMD_STD has 17 precedence levels when the C<catalog_abstraction_level> pragma is C<rtn_inv_alt_syn>; if it is C<plain_rtn_inv> instead, then 13.5 of the levels can be eliminated, so then PTMD_STD has just 3.5; if it is C<code_as_data> instead, then 2.5 more can be eliminated, leaving just 1. Here we list the levels from "tightest" to "loosest", along with a few examples of each level: Level | Assoc | Examples -----------------+-------+--------------------------------------------- Terms | N/A | Inf True Order:Same Down 42 3.14 -5/7 3*2^8 | | F;'27E04' 'eek' foo "x" #`comment!`# | | {43,9,5} [1,2,3] {'Carrots'=>42} {11..20} | | $:{...} %:{...} @:{...} nlx.lib.MyType | | (1+2) myfunc(...) <Int> nlx.data.quux .age -----------------+-------+--------------------------------------------- Postfix | N/A | f().a p.{...} r{...} x.[...] y[...] ++ -- i! -----------------+-------+--------------------------------------------- Generic Prefix | N/A | || # #+ % @ Currying Infix | left | assuming Exponentiation | right | ^ exp ** log e** log-e Multiplicative | left | * / div mod intersect join times divideby | | where !where matching !matching compose | | intersect+ Additive | left | + - |-| ~ ~# union exclude minus | | union+ union++ minus+ round Selecting Infix | left | as asserting min max // -----------------+-------+--------------------------------------------- Comparison | left | <=> = != < > <= >= isa !isa like !like | | inside !inside holds !holds in !in has !has | | {<=} {!<=} {>=} {!>=} {<} {!<} {>} {!>} | | {<=}+ {!<=}+ {>=}+ {!>=}+ {<}+ {!<}+ {>}+ {!>}+ -----------------+-------+--------------------------------------------- Negation Prefix | N/A | not ! ¬ Conjunction | left | and ∧ [<=>] Disjunction | left | or ∨ xor ⊻ ↮ Implies | left | imp → nimp ↛ if ← nif ↚ nand ⊼ ↑ nor ⊽ ↓ Equivalence | left | xnor ↔ -----------------+-------+--------------------------------------------- Shorting Infix | right | ??!! if-else-expr given-when-def-expr Binding Infix | right | ::= -----------------+-------+--------------------------------------------- Assignment | non | := :=++ :=-- :=foo _______________________________________________ muldis-db-users mailing list muldis-db-users@mm.darrenduncan.net http://mm.darrenduncan.net/mailman/listinfo/muldis-db-users