記事題の通りのポンコツprogramです。文字の並び順はUnicodeの昇順となっています。3567 bytesに圧縮してあります。詰めが甘いのでまだ圧縮の余地あり。現状はUnicodeの差分をGamma符号で連長圧縮しているだけです。
let sjisString=((A,O,S,a,n,o,c)=>{for(let b,B,g=i=>{if(!b){B=0;for(i=5;i--;B=B*85+(b<85?b:52))b=A.charCodeAt(a+i)-40;b=32;a+=5}return B>>--b&1};o<9206;O[o++]=S(n)){for(;!g();)c++;for(n+=1<<c;c;)n+=g()<<--c}return O.join("")})(("GBhK(jszA-qa:F9Mqfj-2*`=*#sfZ?z:G/Eo*g4cVXAW`<z^FdJnQbE7p_*NTOpg5iJtlj.`PGJwsO.F]O3<<z.ltaXR<cINEHCXQZ}<:TI^=xDlf8LIz1[pFJd5=3#B3^?zJe>XN#p3^?zJ^W4u<wgbJEagC:V}b|hV/|c?|}hJ)2Mf^>I(1rP8x1{VM;SoDg,)yRqpi6_,H{wk=]Mtl].6W-7Zdf>}5/95XMMiK/oyQJ5gc7CpJ[Gg5N5f6r+v=X}VSFW9segLZ<Lgako}t=)+kA>eE9P@_47A3wa8u=(S}z=WrNVk<=wI`Bgu@3^_ALW9/:7D@w-A`{UFEb,_zq^`n9^sa;E]vA`DK>U<FLiQ2sx2,iRTw[=<b>mOdqCZf2zEBWd;Cf:Lk.==]FP1:8;0B_5k81Uf5JRKGWisV^iXi0Y_MJR9gB@O5urlNT]RU.M=a1B@:U2`pr@Kg?2oeGBWTKkLMTu9-M8Ma)Gg=`P2m_,ql:pQ9E=iqo8E@2X<?TrI.TK[T{/.H/T@9RF,i|gg.Yba3gLl3rD07sE4B3Yly,u*J[*3p7z7`Hv^>xZ.uSR:=^2GmcKE{I.]2D(7C+Byb/BNl=im:hj2K3T^4DEp?B`LxKjDBi|o^@brdTEWEoiMx:),ddT;bkKj6/1.1E*}DjP0TYew2Y7M-+w@:Kjvw7hJ?8}.ShKVD-|7TncF[YWYRLzH8FoZ9[@F?73/9EIsl]4^C0d@S-r.7>zJNw;?Dcqu.gri|?;i1Z}MEW=nsi:j>vXLa[63zc3+7A:Ty3XZ.jN1@tZzDVnI>FOaXgt)*AXmTvXl:McZ*xZb1[RUkPhokE/_PGihW|J^_m;;H8G{^MI5tJ4p8:I`HN`LsiqtzBCeh@Hp:Je=wtg62`PNYP`fLy3)kGKdnapaDIemRXN`0|2-aO}Xsp_fDfaWO=qs[_-`/G2i560tKs(>RhMl3y?9_ZW`v:x5T+`M_JNJ<a2S9/V9^j{>Yh+psltV]=-GlV9XxPtobF^[CsrQZURf]UsBe<f-s2/}a6ts2`v=-?>AInK9YvU2e7aidC?HUB1R:c+)8<v/1Cr3JLBFdYk}`cOpC,VjD=Bg0nXq*Z:},byS-pl_oIIQJ2>}[bZc2Tg/uG(j-DcKlBa2G|6KpAE9}GXk0}VgRAF<Tex=sWE_0h/[0d}+5Ri2BQRnASyfX:S=G3jYP_h:lzZd6lPlT).,4>=fL6@7RLRj}tmUNKI*0`RG}AO_cf_V<r(7](.{EW|Fox,;ejgxfGDs/rid@.WSbfCT)1L)[H@6;5gVbPq7m`bX[5eHXol,I0VV_s@f>f.Aw:XYDx[E?A/mT3N1?TRz=[lMR9pmL-XP6^4Yli3i=yi*9^O97rjgz}_r)5H5EgN2y:<{pO^S6UMlU1nj/J7}d3ZCZ/:O<Tf@=CT}dB]GrhWhnSzws?tV243uP7:KlxEEJ`.T5bJkHfNpzxCOx+Cm]>1ipQpJPF+=/mSHe>GBl]lwiUDj-]>utI+3:k7f1F)GCq:G:]>I9je:{Jtj_`@`q?vZzrS,f,Gh[bZ2A=a[u*(bs7LvE[LJSPlMVgV<B5EKgm/}<PtHZ]/Gq0Joq-j6vF>@nT44V`Wg]it-v577.^c`qDtA|HS5BYAzoC[UzOR.Q3dZD.EDH0yy{WJ@7m<sN;b^ts7>4S(3@K0_]A}j+LlC[?rd4sI=AAa^FSG]QIHaB/F,],.lRC`(c:tm]quBGd5K.fwSA]OY})N=p(M8/Bzru_Wv-sI`bchi[txE6NVjh4^9H6gT*97:b[.ctLZ4Vrdxs}0uQNVFbLjvBfx^M0eB;YAEk{/p}STnPrtmR7`v.8N.T/5BN(Hg{gcn;NO(Pi_2M;>?p4h3fjEUhF)S5;fz(B+X?So_?GxO]RZ0PZdcobJUC]Ij5>CHa;PQ|kA9lPslutqHiby0W,idUT=S^p@TP:PCO6.CX}0dS3kPeL1aS5OM+ZV(6TBr49:*^jVZGXdCR3uW8G/*ZmzE)84y,^sVvZgF@By_]D0Y{_iPRE]2(J/m2z-^BaCW|+YMAc=D5]X/lfyCJV16O=s}2-G_*F-14`c@iUQn2)7ac|X6SFar_Rj+).jW.yl(B6SV:O{wZy(C=TGw1aZ^Ry751D/bWo`}>Y9qXM4ur{VHgoD*>k:->bbgc`Zrc[GCy2h/8BUK<5k0_Aug@{iV/KjbCMsYIHg0T]Vrn12Nre=;?;5|xW|kZ[JNpTA}oKW7Zm1[.@uT73BJ?SOMe/?B08R@9H9GRnmsb`]D;X7+WzjDMTO3*e2)2[E5>y=k@(-Ny-a3n[0_LCm1>lowW.Jk7K=;(q*UaQV=j)7_Yy}@}*(A7_+s{VUYiWQ6wgw6Pvz/}NUj}iqdfKP;>}yP69jMSSS54SeuwLxgSOHc@xS(FR@dulm.`zE]Y:dnA45wR;a?;Is}wJj.04>)>4jXC28dRTx,-s?TUZ1}U.8JZw8k<<r5,r3HYkfE(>,_537Grzo>2-qx@[nsiqN^dz2j{kb>AI`jv{PS3EbwSl-vG.f}D8y+489_N_z6ZsA<}{eb,lQ8C@G5A>|n{AbL,1cRhlO5bTZG6CC|N@C)V??SQ5GoqXE{RZp}w@AD7zzVK,)>U=4oh7z|f^s-fP,;yfpG36FaGCawtfW`9YE-lsgpD5O3gLxgp==21ayGo`4;JV{4@9oGevcJsSUQqz@]X?6Mo<>gbj>U*OfWc1FcKA1Ys9_Dh;i.LDlHpq.0?*X9+wBL?AojMAdJnV-5@30@DeZPOVkxCRf3GUMS.jTq),jj_mF`tG6}(8]k.iL0?H`L:lkz`y_vRxAAj:6u]6e6J]Xy`*->QO3vIWRkH62WbF^FkIH6h6C3gM20tCNiooU:K9=>8GmQD^c]b.=;a[nt`.++tA*[GvzP}:T,MW5}f3^R7Tibk.{q?Ayn^8Po?n-iCI>r?0sVLe7u;*Ycb6JbGZzB@Qv*lmT:RuW+pR5bz:f.jlewk@i,drIApX`H[FNr=bV=FU4};}3.}5I>dgwAB=J6fpE028I;Gt8kel@g)}d+j[qpsdTD6`qS`(bx@L5m)N=}k;OyobkGrS}y<TI<rB00bj:Vihu,CmRNRgqz6`d.8*RJ-3YX5gccp+jgb_g0j.g^l`0CgaM23}gBRg^oo{q@dubxMxv|7p0pu}tBdyu}z3rI2{GSRD+|_tG3F2/ml`W-C;Pv+6GqLGo?EOh2(rY>{_?BsVh4,DD`J9][cnaE,ap7tjqg5g+v?de"+Array(59).join("#")+"z|]?ziJ`N3kc]80KJDyy##>3^?z;`y+=").replace(/#/g,"(4^?z"),[],String.fromCharCode,0,0,0,0)
上記の実装ではsjisString
にstring型で文字列を格納しています。配列の方が良ければsplit("")
でも加えると良い。
これが何の役に立つかって? 私は驚くべき活用法を編み出したが、それをここに記すには余白が狭過ぎる