/ grouped -> list P:{ a:{:[@y;(x;y);(x;_f/y)]} p:{ :[~#z ;(x;y;z) (*z)_in" \t\r\n" ;(x;y;1_ z) "("=*z ;(.[x;y;,;,()];y,#x . y;1_ z) ")"=*z ;(.[x;-1_ y;,;()];-1_ y;1_ z) (.[x;y;,;1#z];y;1_ z)]} a/*(p .)/(();!0;x," ")} / list -> applicative Q:{:[@x;x;"`",,/_f'x]} / applicative -> grouped R:{:["`"=*x;_f[*d],{:[1=#x;x;"(",x,")"]}_f[*|d:D 1_ x];x]} D:{(0,1+(+\-1 1 x="`")?-1)_ x} / lambda elimination: L:{|*(M .)/(();|x)} M:{:[~#y;(x;y);"."=*y;(|N[y 1;|x];2_ y);(x,*y;1_ y)]} N:{,/(O[x].)/(();y)} O:{(:[~#z;y;"`"~*z;y,"``S";x~*z;y,"I";y,"`K",*z];1_ z)} Y:+(("``S`KxI" ;,"x") ("``S`Kx`Ky" ;"`K`xy") ("``S`Kxy" ;"``Bxy") ("``Sx`Ky" ;"``Cxy")) t:L"x.y.``-xy" Y:(P R@)''Y t:P R t y:("Y";(("S";"K+");"K0")) d:{{{e[y;z;x]}/[x;*Y;Y 1]}/x} e:{:[@z;z;_n~d:f[.();x;z:_f[x;y]'z];z;g[d;y]]} f:{:[_n~x;x;~@y;:[~@z;_f/[x;y;z]];y _in _ci 97+!26;@[x;`$y;:;z];@y;:[y~z;x]]} g:{:[4:y;{:[1=#x;*x;x]}@h/[y,"";,/$!x;x[]];_f[x]'y]} h:{@[x;&x~\:y;:[;z]]} d t