We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

掛軸key

From Esolang
(Redirected from User:Miui/Drafts/Turnkey)
Jump to navigation Jump to search

掛軸key (pronounced "kakejiku key") is an esoteric programming language in the string-rewriting paradigm. Programs are a formed by matching a key to a script mandala (a "kakejiku"). In essence the programs here are locks so a ConstantLanguage() is used to enumerate the system.

A kakejiku

The first line contains a magic number (generally "P2" or "P5") followed by a program description.
P2 <-> P5
# This line is the program description. A series of programs is presented to attempt to describe a sequential replacement system as if it were a key being turned in a lock. A key here is described as part of a kakejiku (Kanji:掛軸) or a "hung script."

掛軸

P5
# non-breaking spaces -> 255
140 213
255
                                                                      
                                   G                          =       
  (t, e)=                         >{l                   et    h,      
   l= "",     r=0                  ,o                  =ato   b(      
    t) ,s     =[]                  ;f                 or( h   =0      
      ;h<o.l engt                  h                  ;h      ++)l+   
   =(o.charC  od                  eA t(h)  +2  5   6  )   .toString(  
   2).sl      ic    e  (1  )   ;let p=t=>pars eIn t(l .s   ubstr      
      (r,     t)   ,2  ,r +=t);for(let   t =0 ;t  <e  .le    ng       
      th;t    ++   ){  l  et  [l  ,r       ,o ]=  e[  t],    a=       
     p(5);    fo   r(  ;a --      ;){le    t      t  ,e=     p(3      
     ),a=[]   ,f   =   [  ]   ;for(t=0;t  < e ;t+ +)  a.    push(     
    [4*p(7)* o+l,  4* p(7)*o+r]);for( t=0;t<4;t+ +)   f.   pus h(     
    3 .5*p(3 )*o) ;let i=e>2?  [[2*a[0][ 0]-a[1]  [   0 ]  ,2* a[0    
   ] [1]-a[1] [1  ]],...  a ,   [2*a[e-1  ]   [0 ]-   a[  e-2][0],    
  2* a[e-1  ] [1]-a[e - 2][1]   ]]:0,n=   []  ;i f(  i)for(h=0;h<i.   
    length-3;h++  ){l et[e,l   ,r,o]=i.s  li ce( h , h+4);for(t=0;t   
     <1 4 ;t++)   {let h=t/1   3;n.push(  [0  ,1 ].m  ap(t =>.5*(2*   
    l[t]+( r[t]   -e[ t])*h + (2*e[t]-5   *l [t] +4   *r[ t]-o[t  ])  
    *h*h+(    3*l[t]  -e[t]-3*r[t]+o[t] )*h**3)  ))   }} else fo   r  
     (t=0;    t<   1  4;t++)n.  push([0,1].map(e =>a [0     ][e]+( a  
     [ 1][e    ]-  a  [0  ][e])*t/13));  let  u =n.l en g   th-1,m    
    =[],M=[] ; n.  ma p( ([t,e], h) =>{l  e  t l=h/u  *3, r=Math.mi   
    n(0|l,2) , o= f[r ]+(f[r   +1]-  f[r  ] ) *(l-r ) , [  s,p]=n[    
   M ath.ma    x  (0  ,h  -1 ) ],[   a ,i]=n[ M ath   .min  (u,h+     
   1 )] ,g=   a-  s, c=i  -p ,  d=   M  ath.  h yp    ot(g, c)||1     
   ;m.p ush    (  [t-c/d  * o   ,e+ g/   d*o  ]  )    ,M .p ush(      
   [t+c  /d    *  o,  e- g/d    *o ])})  ,s. pu  sh   ("  M"+[..      
    .m   ,.   ..  M.  re ver  se()].map( t=   >t [    0]   .toFi      
    xe   d     (1) +     " "+t[1].toFixed ( 1    )    ).   join("     
     L")+"    Z")         }}return s};G=    (    t,   e)=   >{le      
     t h,l    ="        ",r=   0,o=ato      b(  t),    s    =[];      
      for(     h   =0   ;h <   o.lengt     h;h  ++)   l    +=(o.ch    
     arCode   A    t(h  )+2   56).t oS     tr   in    g     (2).sl    
     ice(1)   ;   let   p=    t=>p  arseI   nt  (l   .su    bstr(r    
      ,t),2  ,r+   =t  );fo r(let t=0;t<e  . l  eng  th     ;t++      
      ){l    et    [l   ,r ,o] =e[t],a=p(5 );for(;a  --    ;){let     
       t,e    =p   (3)  ,a=[], f=[];for(t=0;t<e ;t+ +)a.  push( [     
     4*p(7)  * o  +l,4  *p(  7  )*o+r]); f or ( t=0;t <4 ;t ++) f     
     .pus h (3.5*p (3 )*o);     let i=e>2  ?[  [2*   a[0][  0]-a[1    
     ][0], 2*a[0]  [1 ]-a[1    ][1]],...a  ,[2   *a  [e-1   ][0] -    
    a[e-2] [   0  ] ,2*a[e-    1][1] -a[e  -2]  [1]  ]]    :0,   n    
   =[ ];     if(    i   )for ( h=0;h<i.le  ng  th-3; h+  +){let  [    
   e ,l,r    ,o    ]=i  .sli ce(h,h+4);fo  r(t  =0;  t<1  4;t++ )     
    {let     h=t  /13    ;n. push([0,1  ]. map  (t= > .5* (2*  l[t    
    ]+(r    [t]  - e[t   ])   *h +(2*e[t   ]-5 *l[t  ]+4   *r [ t     
    ]-o      [t ]  )*h  *h+(   3 *l[t]-e   [t]   -3  *r[   t]   +o    
      [      t])*  h** 3)))}     }else fo  r(t= 0; t<14;t  ++)  n     
      .      pu   sh([   0  ,  1].map(e=>    a[ 0]      [  e]+( a[    
      1]    [e]- a [0   ][e    ])*t/13));   let   u=n      .length    
      -1,  m =[]         ,    M=[ ];n.ma    p((  [t,    e],h)=>{le    
      t l =       h/u*   3   ,r=  Math.m    in(  0|l,   2), o=f[r]    
      +(f     [   r+1]   - f[  r   ])*(l   -r),   [s ,p ]=n[Ma th.    
    max(0,   h-  1)],[  a,i]   = n[Math.m  in(u,h+1)],g=a- s,c =i-    
    p,d=Ma   t h   .h ypot(g,c )  ||1;m.push([t-c/d *    o, e+ g/d*   
    o]),M.  p  us   h   ([t+ c/d*o,e-g/d*o])}),s.push   ("M"+[ ...    
    m, ... M.re   ve   rse()].map(t=>t[0]   .t   oFi x e d( 1) +"     
    "+t[1]   .t    oF ix e d(1)).join("L"   )+"  Z") }   }r eturn     
    s};G=(    t    ,e)  =>{l  et h,l="",r=  0,    o=    at   ob(t)    
    ,s=[]    ; f   or  (h=0;  h<o.length;h  ++)  l+=     (o  .cha     
    rCode   At(h   )+  256 )    .toString( 2).sli c      e(  1);l     
     et p    =t = >pa  rs    eInt(l.substr(r,t)  , 2     ,r  +=t);    
     for(    let   t = 0;t<  e.len gt h;t   ++) {l et   [l,r ,o] =    
     e[t]   ,a=p (5  )  ; f  or(;a--;){let t,e=p  (3)    ,a  =[],f    
     = [];   for(  t=0;   t< e;t++)a.push([4*p(  7)*o    +l   ,4 *p   
     ( 7)*    o+   r]) ;  for(t=0;t<4;t+   +  )  f    .  p    us h    
     (3.5*    p           (3)*o);let i=e>2?[  [       2  *a   [0 ]    
     [0]-a     [          1][0 ],2*a[0][1]-a[ 1       ]  [1   ]] ,..  
      .a,[     2*        a[e  -1][0]-a[e-     2  ]   [0  ],    2*a[   
      e-1]      [       1]-a[e-2][1]]]:0      ,n=[]   ;  if    (i)f   
       or(   h= 0      ;h<i.length-3 ;h++     ){le    t [e,    l,r,   
       o]=    i.s     li ce( h,h+4); for(     t=0;t   <   14  ;t++    
      ){let   h =t/1 3;       n.push([0,      1].ma   p  (t   =>.     
      5*(2*  l[  t]+(r       [t]-e [t])        *h     +   (   2*e[    
       t]-5*l      [t       ]+4*r[  t]- o[t])*h*h+(3*l[   t   ]-e[t   
       ]-3*     r           [t  ]+  o[t])*h**  3 ))  )}}else for(t=   
      0;t<1   4 ;          t++  )n  .pus      h([0,1  ] .map(e=>a[0   
    ][e]+(a [1][e]        -a[0]  [  e])*     t/13));  l  et u=n. le   
    ngth  -1,m=[],        M=  [] ;n.map((  [t,e],h)=> {  le  t l =h   
      /u* 3,r=Math       .m   in   (0|l,2 ),o =f[r] + (  f[  r+1]-f   
      [r])*( l-r)        ,[    s ,p ]=n[Mat   h.max(0,h   -  1)],[a   
     ,i ]=n[ Math.      mi       n(u,h+1    )],g=   a-    s ,c=i-p,   
     d= Mat  h.hyp      ot        (g,c         )||   1 ;  m.push([t   
    -c/d*o,e +g/       d*         o]),        M.pu   sh( [t+ c/d*o,   
   e-g/d*o])}) ,       s.     p   ush(         "M     "+ [.. .m,...M  
   .revers  e()].      m      ap  (t=>t[       0]     .toFi xed(1  )  
     +"  "   +t[      1]       . to Fixe      d(1)    ).joi n("L") +  
     "Z ")    }       }r       eturn s};     G=  (    t,e  ) =>{le    
     t h,l    ="      "         ,r=0,o=a    t ob (t  ),s =[] ;for(    
     h=0     ; h<  o .l          ength;       h++)l   + =(o .charC  o 
      deAt  ( h)+  2 56        ).toStri ng   (2).sli   ce(1 );let     
      p=t= >  pa rseInt        (l.substr(r    ,  t    )  ,2 ,r+=t     
    );for     (l e t  t        =0 ;t<e.len       g    th ;   t++      
     ){let    [l ,r, o] =     e[  t],a=p(        5   );f  o r(;a      
     --;){l   et     t,e=    p    (3),a=[]       ,f=[];for( t=0;t     
     <e;t++)  a.  pu sh(    [4 *  p(7)*o+l, 4*p(7)*o+r]  ); for(      
       t=0 ;t  <   4 ; t   ++)f.  pus  h(3.5*p(3)*     o ); let i     
     =e>2?  [[ 2   *   a  [ 0][0]-a[1][0],2*a    [    0]    [1]-a[1   
      ][1]]  , .   .  .a ,  [2*a[e-1][0]-a       [    e-  2  ][0 ],   
       2*a[    e   -1][1]     -a[e-2][ 1]]       ]    :0  ,  n=[];    
      if(i     )   for(h=              0;h       <    i   .lengt      
      h-3;h    + +){let[e,             l ,       r        ,o]=i .     
     slic e      (h,h+4);fo            r (                 t=0;t<1    
    4 ;t++){       let h=t/             1                 3;n.push    
      ([0, 1                                             ]   .ma      
                                                                      
                                                                      

key

P2
# 御本尊 -> Gohonzon (P5)
140 213

example

Nope.    </nowiki>   <br><br>       <br> <br><br>   <br><br><br><br>  <br><br><br><br><br><br>           <br> <br> <br> <br><br>   <br><br>  <br><br><br><br>  <br><br><br> <br><br><br><br><br><br>     <br><br><br><br><br><br><br><br>  <br> <br><br><br><br><br><br><br><br><br><br>   <br><br><br><br><br><br><br><br><br><br><br><br>  <br><br><br><br><br><br><br><br><br><br><br><br><br><br>                   <br> <br> <br> <br> <br> <br> <br> <br><br>   <br><br>  <br><br>  <br><br>  <br><br><br><br>  <br><br><br> <br><br><br> <br><br><br> <br><br><br><br><br><br>     <br><br><br><br>    <br><br><br><br><br><br><br><br>  <br> <br><br><br><br><br> <br> <br><br><br><br><br><br><br><br><br><br>   <br><br><br><br><br><br>  <br><br><br><br><br><br><br><br><br><br><br><br>  <br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br>         <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>  <br> <br> <br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>   <br><br>  <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>  <br><br><br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>     <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>  <br> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>   <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>  <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>                                   <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br><nowiki>

then Nah. (myoho renge kyo)

Interpreter

日本の創価学会における日蓮大聖人の仏法:








"Gohonzon"

御本尊 = "Gohonzon"

  1. 南無妙法蓮華経 = "namu myōhō renge kyō"

See also

External Resources