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
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