src/Pure/term.ML
changeset 16724 1c8317722b4c
parent 16710 3d6335ff3982
child 16787 b6b6e2faaa41
equal deleted inserted replaced
16723:9a9c034f1d57 16724:1c8317722b4c
   764 
   764 
   765 
   765 
   766 (** Equality, membership and insertion of indexnames (string*ints) **)
   766 (** Equality, membership and insertion of indexnames (string*ints) **)
   767 
   767 
   768 (*optimized equality test for indexnames.  Yields a huge gain under Poly/ML*)
   768 (*optimized equality test for indexnames.  Yields a huge gain under Poly/ML*)
   769 fun eq_ix ((a, i):indexname, (a',i'):indexname) = (a=a') andalso i=i';
   769 fun eq_ix ((x, i): indexname, (y, j)) = i = j andalso x = y;
   770 
   770 
   771 (*membership in a list, optimized version for indexnames*)
   771 (*membership in a list, optimized version for indexnames*)
   772 fun mem_ix (_, []) = false
   772 fun mem_ix (_, []) = false
   773   | mem_ix (x, y :: ys) = eq_ix(x,y) orelse mem_ix (x, ys);
   773   | mem_ix (x, y :: ys) = eq_ix(x,y) orelse mem_ix (x, ys);
   774 
   774