|
#define DO(n,stmts) {I i,_n=(n); for(i=0;i<_n;++i){stmts;}}
i. x⍳y DO(xn, h=HF(x[i]); while(*h>=0&&x[*h]!=x[i])if(hm==++h)h=h0; if(*h<0)*h=i; );
DO(yn, h=HF(y[i]); while(*h>=0&&x[*h]!=y[i])if(hm==++h)h=h0; *z++=*h<0?xn:*h; );
i.~ x⍳x DO(xn, h=HF(x[i]); while(*h>=0&&x[*h]!=x[i])if(hm==++h)h=h0; if(*h<0)*h=i; *z++=*h;);
e.~ y∊x DO(xn, h=HF(x[i]); while(*h!=M&& *h !=x[i])if(hm==++h)h=h0; if(*h==M)*h=x[i];);
DO(yn, h=HF(y[i]); while(*h!=M&& *h !=y[i])if(hm==++h)h=h0; *z++=*h!=M; );
~. ∪x DO(xn, h=HF(x[i]); while(*h!=M&& *h !=x[i])if(hm==++h)h=h0; if(*h==M)*h=*z++=x[i]; );
~: ≠x DO(xn, h=HF(x[i]); while(*h!=M&& *h !=x[i])if(hm==++h)h=h0; if(*z++=*h==M)*h=x[i]; );
#@~. (≢∪)x DO(xn, h=HF(x[i]); while(*h!=M&& *h !=x[i])if(hm==++h)h=h0; if(*h==M){*h=x[i]; ++c;});
|