/ 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]} / 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)} / L"x.y.`yx" / L"x.`xK" L"`h.x.`hhh.x.`hh" / "```S``S`KSKK``S``S`KSKK" \ / combinator optimization: A:{{`0:,x;B/[x;*Y;Y 1]}/x} B:{ i:0;do[1|(#x)-#y r:i _ x;if[~r~s:C[r;y;z];:(i#x),s];i+:1] x} C:{ r:x;d:.();v:_ci 97+!26;while[#y if[~(*y)_in v;if[~k:+/&\y=(#y)#r;:x];r:k _ r;y:k _ y] if[(*y)_in v;d[`$*y]:*s:D r;r:s 1;y:1_ y]] _ssr/[z;$!d;d[]],r} D:{(0,1+(+\-1 1 x="`")?-1)_ x} t:"`Y``S``S`KS``S``S`KS``S``S`KS``S`KK`K!``S``S`KS`KK`KK``S``S`KS``S``S`KS``S`KK`KS``S`KK`KK``S`KK`KK` `S``S`KS``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S`KK`KK``S`KK`KS``S``S`KS`` S``S`KS``S`KK`KS``S``S`KS``S`KK`KK``S`KK`KK``S``S`KS``S`KK`KK``S`KK`K+``S``S`KS``S``S`KS``S`KK`KS``S ``S`KS``S``S`KS``S`KK`KS``S``S`KS``S`KK`KK``S`KK`KS``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S``S`KS``S` KK`KS``S``S`KS``S`KK`KK``S`KK`KS``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S`KK`KK``S`KK`KK``S``S`KS``S`K K`KK``S`KK``SKK``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S`KK`KK``S`KK`KK``S``S`KS``S``S`KS``S`KK`KS``S` KK`KK``S`KK`KK``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S`KK`KK``S`KK`KS``S`` S`KS``S`KK`KK``S`KK`KK``S``S`KS``S`KK`KK``S`KK`KK``S``S`KS``S`KK`K-``S``S`KS`KK`KK"_dvl" \t\r\n" u:"Y(S(S(KS)(S(S(KS)(S(S(KS)(S(KK)(K!)))(S(S(KS)(KK))(KK))))(S(S(KS)(S(S(KS)(S(KK)( KS)))(S(KK)(KK))))(S(KK)(KK)))))(S(S(KS)(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(S (KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KS)))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S (S(KS)(S(KK)(KK)))(S(KK)(KK)))))(S(S(KS)(S(KK)(KK)))(S(KK)(K+)))))))(S(S(KS)(S(S (KS)(S(KK)(KS)))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KS)))))(S (S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK) (KS)))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KK)))))(S(S(KS)(S (KK)(KK)))(S(KK)(SKK)))))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK )(KK)))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(KK)(KK))))(S(KK)(KK))))))))(S(S(KS)(S(S( KS)(S(KK)(KS)))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KS)))))(S( S(KS)(S(KK)(KK)))(S(KK)(KK))))))(S(S(KS)(S(KK)(KK)))(S(KK)(KK)))))))(S(S(KS)(S(K K)(K-)))(S(S(KS)(KK))(KK)))))"_dvl" \t\r\n" Y:+(("``SKK" ;,"I") ("``S`KxI" ;,"x") ("``S`Kx`Ky" ;"`K`xy") ("``S`Kx``Byz" ;"```Dxyz") ("``S`Kxy" ;"``Bxy") ("``S``Bxy`Kz" ;"```Exyz") ("``Sx`Ky" ;"``Cxy") ("``S``Bxyz" ;"```Fxyz") ("``SxI" ;"`Wx") ("``SI`Kx" ;"`Tx")) 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 Z:+(("`Ix" ;,"x") ("``Kcx" ;,"c") ("```Sfgx" ;"``fx`gx") ("```Bfgx" ;"`f`gx") ("```Cfgx" ;"``fxg") ("````Dcfgx" ;"``c`fx`gx") ("````Ecfgx" ;"``c`fxg") ("````Fcfgx" ;"`c`f`gx") ("`Yx" ;"`x`Yx") ("``Wfx" ;"``fxx") ("``Txf" ;"`fx")) \ Y(S(S(KS)(S(S(KS)(S(S(KS)(S(KK)(K!)))(S(S(KS)(KK))(KK))))(S(S(KS)(S(S(KS)(S(KK)( KS)))(S(KK)(KK))))(S(KK)(KK)))))(S(S(KS)(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(S (KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KS)))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S (S(KS)(S(KK)(KK)))(S(KK)(KK)))))(S(S(KS)(S(KK)(KK)))(S(KK)(K+)))))))(S(S(KS)(S(S (KS)(S(KK)(KS)))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KS)))))(S (S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK) (KS)))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KK)))))(S(S(KS)(S (KK)(KK)))(S(KK)(SKK)))))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK )(KK)))))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(KK)(KK))))(S(KK)(KK))))))))(S(S(KS)(S(S( KS)(S(KK)(KS)))(S(S(KS)(S(S(KS)(S(KK)(KS)))(S(S(KS)(S(KK)(KK)))(S(KK)(KS)))))(S( S(KS)(S(KK)(KK)))(S(KK)(KK))))))(S(S(KS)(S(KK)(KK)))(S(KK)(KK)))))))(S(S(KS)(S(K K)(K-)))(S(S(KS)(KK))(KK))))) Y(S(K(S(S(S(K!)(SKK))(K(SKK)))))(S(S(KS)(S(KK)(S(K(S(K(S(K+)))))(S(S(KS)(S(K(S(K S)))(S(K(S(KK)))(S(S(KS)(S(KK)(SKK)))(K(SKK))))))(K(K(SKK)))))))(K(S(K-)(SKK)))) ) Y(S(K(S(S!(KI))))(S(S(KS)(S(KK)(S(K(S(K+))))))(K-))) Y(B(S(C!I))(·B(B(B+))-))