Skip to content
Adam Bliss edited this page Oct 25, 2013 · 1 revision

Implementation

++  vast
  =+  [bug=`?`| was=*(set path) wer=*path]
  |% 
  ++  gash  %+  cook
              |=  a=(list goon)  ^-  goon
              ?~(a ~ (weld i.a $(a t.a)))
            (more fas gasp)
  ++  gasp  ;~  pose
              %+  cook
                |=([a=goon b=goon c=goon] :(weld a b c))   
              ;~  plug
                (cook |=(a=(list) (turn a |=(b=* ~))) (star tis))
                (cook |=(a=gene [[~ a] ~]) hasp)
                (cook |=(a=(list) (turn a |=(b=* ~))) (star tis))
              ==
              (cook |=(a=(list) (turn a |=(b=* ~))) (plus tis))
            ==
  ++  glam  ~+((glue ace))
  ++  hasp  ;~  pose
              (ifix [sel ser] wide)
              (stag %cnhp (ifix [pel per] (most ace wide))) 
              %+  cook
                |=(a=coin [%dtpt ?:(?=([~ %tas *] a) %tas %ta) ~(rent co a)]) 
              nuck:so
            ==
  ++  mota  %+  cook
              |=([a=tape b=tape] (rap 3 (weld a b)))
            ;~(plug (star low) (star hig))
  ::
  ++  plex
    |=  gen=gene  ~|  [%plex gen]  ^-  path
    ?:  ?=([%zpcb *] gen)
      $(gen q.gen)
    ?>  ?=([%clsg *] gen)
    (turn p.gen |=(a=gene ?>(?=(%dtpt -.a) q.a)))
  ::
  ++  pray
    |=  gen=gene  ~|  %pray  ^-  gene
    =+  rev=(plex gen)
    ?:  (~(has in was) rev)
      ~|(%pray-loop !!)
    =+  txt=(,@ta .^(%cx (weld rev `path`[%hoon ~])))
    %+  rash  txt
    (ifix [gay gay] tall(was (~(put in was) rev), wer rev))
  ::
  ++  prey
    |=  gun=(list gene)  ^-  gene
    ?~  gun    [~ 1]
    ?~  t.gun  (pray i.gun)
    [%tsgr (pray i.gun) $(gun t.gun)]
  ::
  ++  phax
    |=  ruw=(list (list beer))
    =+  [yun=*(list gene) cah=*(list ,@)]
    =+  wod=|=([a=tape b=(list gene)] ^+(b ?~(a b [[%clfs %smdq (flop a)] b])))
    |-  ^+  yun
    ?~  ruw 
      (flop (wod cah yun))
    ?~  i.ruw  $(ruw t.ruw)
    ?@  i.i.ruw
      $(i.ruw t.i.ruw, cah [i.i.ruw cah])
    $(i.ruw t.i.ruw, cah ~, yun [p.i.i.ruw (wod cah yun)])
  ::
  ++  posh
    |=  [pre=(unit goon) pof=(unit ,[p=@ud q=goon])]
    ^-  (list gene)
    ~|  %posh-fail
    =+  wom=(poof wer)
    =+  ^=  yez
        ?~  pre  wom
        =+  moz=(poon wom u.pre)
        ?~(pof moz (weld moz (slag (lent u.pre) wom)))
    ?~  pof  yez
    =+  zey=(flop yez)
    =+  [moz=(scag p.u.pof zey) gul=(slag p.u.pof zey)]
    (weld (flop gul) (poon (flop moz) q.u.pof))
  ::
  ++  poof  |=(pax=path ^-(gens (turn pax |=(a=@ta [%dtpt %ta a]))))
  ++  poon
    |=  [pag=gens goo=goon]
    ^-  gens
    ?~  goo  ~
    :-  ?^(i.goo u.i.goo ?>(?=(^ pag) i.pag))
    $(goo t.goo, pag ?~(pag ~ t.pag))
  ::
  ++  poor
    %+  cook  posh
    ;~  plug
      (stag ~ gash) 
      ;~(pose (stag ~ ;~(pfix cen porc)) (easy ~))
    ==
  ::
  ++  porc
    ;~  plug
      (cook |=(a=(list) (lent a)) (star cen))
      ;~(pfix fas gash)
    ==
  ::
  ++  rood
    ;~  pfix  fas
      (stag %clsg poor)
    ==
  ++  scat
    %+  knee  *gene  |.  ~+
    %-  stew  :~  
      :-  '!'
        ;~  pose
          (stag %wtzp ;~(pfix zap wide))
          (stag %zpzp (cold ~ ;~(plug zap zap)))
          (stag %zpcn (cold ~ ;~(plug zap cen)))
        ==
      :-  '$'
        (cook |=(a=wing [%cnts a ~]) rope)
      :-  '%'
        ;~  pfix  cen
          ;~  pose
            (cook |=([a=@ud b=goon] [%clsg (posh ~ ~ a b)]) porc)
            (stag %dtsg (stag %ta (cold %$ buc)))
            (stag %dtsg (stag %f (cold & pam)))
            (stag %dtsg (stag %f (cold | bar)))
            (stag %dtsg (stag %ta qut))
            (stag %clcn (ifix [sel ser] (most ace wide)))
            (cook (jock &) nuck:so)
            (cook |=(a=(list) [%clsg (posh ~ ~ (lent a) ~)]) (star cen))
            ::  (easy [%clsg (poof wer)])
          ==
        == 
      :-  '&'
        ;~  pose
          (cook |=(a=wing [%cnts a ~]) rope)
          (stag %wtpm ;~(pfix pam (ifix [pel per] (most ace wide))))
          ::  (stag %bccb (stag %ktpm ;~(pfix pam wide)))
          (stag %dtpt (stag %f (cold & pam)))
        ==
      :-  '\''
        (stag %dtpt (stag %ta qut))
      :-  '('
        (stag %cnhp (ifix [pel per] (most ace wide))) 
      :-  '*'
        ;~  pose
          (stag %bctr ;~(pfix tar wide))
          (stag %bcts (cold %noun tar))
        ==
      :-  '+'
        ;~  pose
          (stag %dtls ;~(pfix lus (ifix [pel per] wide)))
        ::
          %+  cook
            |=  a=(list (list beer))
            :-  %clfs
            [%smdq |-(?~(a ~ (weld i.a $(a t.a))))]
          (most dog ;~(pfix lus soil))
        ::
          (cook |=(a=wing [%cnts a ~]) rope)
        ==
      :-  '-'
        ;~  pose
          (stag %dtpt tash:so)
        ::
          %+  cook
            |=  a=(list (list beer))
            [%clzp (phax a)]
            ::  [%smhx |-(?~(a ~ (weld i.a $(a t.a))))]
          (most dog ;~(pfix hep soil))
        ::
          (cook |=(a=wing [%cnts a ~]) rope)
        ==
      :-  '.'
        ;~  pose
          (stag %dtpt ;~(pfix dot zust:so))
          (cook |=(a=wing [%cnts a ~]) rope)
        ==
      :-  ['0' '9']
        (stag %dtpt bisk:so)
      :-  ':'
        (stag %smcl ;~(pfix col (ifix [pel per] (most ace wide))))
      :-  '='
        (stag %dtts ;~(pfix tis (ifix [pel per] ;~(glam wide wide))))
      :-  '?'
        ;~  pose
          (stag %bcwt ;~(pfix wut (ifix [pel per] (most ace wide))))
          (stag %bcts (cold %bean wut))
        ==
      :-  '@'
        ;~(pfix pat (stag %bcts (stag %atom mota)))
      :-  '['
        %+  stag
          %cltr
        ;~  pfix  sel
          %+  cook
            |=  [a=(list gene) b=?(~ [~ ~])]
            ?~(b a (weld a `_a`[[%bcts %null] ~]))
          ;~  plug
            ;~  pose
              (ifix [ace gap] (most gap tall))
              (most ace wide)
            ==
            ;~  pose
              (cold [~ ~] ;~(plug (just ']') (just '~')))
              (cold ~ (just ']'))
            == 
          ==
        ==
      :-  ','
        (stag %bccm ;~(pfix com wide))
      :-  '^'
        ;~  pose
          ;~  pfix  ket
            ;~  pose
              ;~  pfix  col
                %+  cook
                  |=  [a=gene b=gene]                     ::  XX shd be static
                  =+  rev=(plex b)
                  :+  %smsm  ~(clam al ~(bore ap a)) 
                  [%dtkt %dtsg %$ %cx rev]
                ;~(plug wide rood)
              ==
              (cook prey (most ket rood))
            ==
          ==
          (stag %cnhx rope)
          (stag %bcts (cold %cell ket))
        ==
      :-  '_'
        (stag %bccb ;~(pfix cab wide))
      :-  '`' 
        ;~  pfix  tec
          ;~  pose
            %+  cook
              |=([a=@ta b=gene] [%ktls [%dtpt a 0] [%ktls [%dtpt %$ 0] b]]) 
            ;~(pfix pat ;~(plug mota ;~(pfix tec wide)))
            (stag %kthp ;~(plug wide ;~(pfix tec wide)))
          ==
        ==
      :-  '"'
        %+  cook
          |=  a=(list (list beer))
          [%smdq |-(?~(a ~ (weld i.a $(a t.a))))]
        (most dog soil)
      :-  ['a' 'z']
        %+  sear
          |=  [a=wing b=(unit gene)]  ^-  (unit gene)
          ?~(b [~ %cnhx a] ?.(?=([@ ~] a) ~ [~ [%dtsg %tas i.a] u.b]))
        ;~(plug rope ;~(pose (stag ~ ;~(pfix fas wide)) (easy ~)))
      :-  '|'
        ;~  pose
          (cook |=(a=wing [%cnts a ~]) rope)
          (stag %wtbr ;~(pfix bar (ifix [pel per] (most ace wide))))
          (stag %dtpt (stag %f (cold | bar)))
        ==
      :-  '~'
        ;~  pose
          %+  cook
            |=  a=(list (list beer))
            :_  [%bcts %null]
            :-  %clfs
            [%smdq |-(?~(a ~ (weld i.a $(a t.a))))]
          (most dog ;~(pfix sig soil))
        ::
          ;~  pfix  sig
            ;~  pose
              (stag %clsg (ifix [sel ser] (most ace wide)))
            ::
              %+  stag  %cnsg 
              %+  ifix
                [pel per] 
              ;~(glam rope wide (stag %cltr (most ace wide)))
            ::
              (cook (jock |) twid:so)
              (easy [%bcts %null])
            ==
          ==
        ==
      :-  '/'
        rood
      :-  '<'
        (ifix [gal gar] (stag %hxgl (most ace wide)))
      :-  '>'
        (ifix [gar gal] (stag %hxgr (most ace wide)))
    ==
  ++  soil
    %+  ifix
      [doq doq]
    %-  star
    ;~  pose
      ;~(pfix bas ;~(pose bas doq kel bix:ab))
      ;~  pose
        (shim 32 33)
        (shim 35 91)
        (shim 93 122)
        (shim 124 126) 
        (shim 128 255)
      ==
      (stag ~ (ifix [kel ker] (stag %cltr (most ace wide))))
    ==
  ++  norm
    |=  tol=?
    =<  %-  stew
        :~  :-  '|'
              ;~  pfix  bar
                %-  stew  :~  
                  ['|' (rune bar %brbr expb)]
                  ['_' (rune cab %brcb expr)]
                  ['%' (rune cen %brcn expe)]
                  [':' (rune col %brcl expr)] 
                  ['.' (rune dot %brdt expa)]
                  ['-' (rune hep %brhp expa)]
                  ['^' (rune ket %brkt expr)]
                  ['+' (rune lus %brls expb)]
                  ['*' (rune tar %brtr expb)]
                  ['=' (rune tis %brts expb)] 
                  ['?' (rune wut %brwt expa)]
                ==
              ==
            :-  '%'
              ;~  pfix  cen
                %-  stew  :~
                  ['_' (rune cab %cncb expj)]
                  [':' (rune col %cncl expb)]
                  ['.' (rune dot %cndt expb)]
                  ['^' (rune ket %cnkt expf)]
                  ['+' (rune lus %cnls expc)]
                  ['-' (rune hep %cnhp expk)]
                  ['~' (rune sig %cnsg expq)]
                  ['*' (rune tar %cntr expp)]
                  ['=' (rune tis %cnts expj)]
                ==
              ==
            :-  '$'
              ;~  pfix  buc
                %-  stew  :~
                  ['|' (rune bar %bcbr expb)]
                  ['_' (rune cab %bccb expa)]
                  [':' (rune col %bccl exps)]
                  ['%' (rune cen %bccn exps)]
                  [',' (rune com %bccm expa)]
                  ['&' (rune pam %bcpm expb)]
                  ['?' (rune wut %bcwt exps)]
                ==
              ==
            :-  ':'
              ;~  pfix  col
                %-  stew  :~
                  ['_' (rune cab %clcb expb)]
                  ['~' (rune cen %clcn exps)]
                  ['/' (rune fas %clfs expa)]
                  ['^' (rune ket %clkt expf)]
                  ['+' (rune lus %clls expc)]
                  ['-' (rune hep %clhp expb)]
                  ['~' (rune sig %clsg exps)]
                  ['*' (rune tar %cltr exps)]
                ==
              ==
            :-  '.'
              ;~  pfix  dot
                %-  stew  :~
                  ['+' (rune lus %dtls expa)]
                  ['*' (rune tar %dttr expb)]
                  ['=' (rune tis %dtts expb)]
                  ['?' (rune wut %dtwt expa)]
                  ['^' (rune ket %dtkt expn)]
                ==
              ==
            :-  '#'
              ;~  pfix  hax
                %-  stew  :~
                  ['<' (rune gal %hxgl exps)]
                  ['>' (rune gar %hxgr exps)]
                ==
              ==
            :-  '^'
              ;~  pfix  ket
                %-  stew  :~
                  ['|' (rune bar %ktbr expa)]
                  ['.' (rune dot %ktdt expb)]
                  ['-' (rune hep %kthp expb)]
                  ['+' (rune lus %ktls expb)]
                  ['&' (rune pam %ktpm expa)]
                  ['~' (rune sig %ktsg expa)]
                  ['=' (rune tis %ktts expg)]
                  ['?' (rune wut %ktwt expa)]
                ==
              ==
            :-  '~'
              ;~  pfix  sig
                %-  stew  :~
                  ['|' (rune bar %sgbr expb)]
                  ['$' (rune buc %sgbc expg)]
                  ['%' (rune cen %sgcn hind)]
                  [':' (rune col %sgcl hina)]
                  ['/' (rune fas %sgfs hine)]
                  ['<' (rune gal %sggl hinb)]
                  ['>' (rune gar %sggr hinb)]
                  ['#' (rune hax %sghx expg)]
                  ['^' (rune ket %sgkt expb)]
                  ['+' (rune lus %sgls hinc)]
                  ['&' (rune pam %sgpm hinf)]
                  ['=' (rune tis %sgts expb)]
                  ['!' (rune zap %sgzp expb)]
                ==
              ==
            :-  ';'
              ;~  pfix  sem
                %-  stew  :~
                  ['_' (rune cab %smcb expb)]
                  [',' (rune com %smcm expi)]
                  ['%' (rune cen %smcn exps)]
                  [':' (rune col %smcl expi)]
                  ['.' (rune dot %smdt expi)]
                  ['<' (rune gal %smgl expc)]
                  ['>' (rune gar %smgr expc)]
                  ['-' (rune hep %smhp expb)]
                  ['+' (rune lus %smls expb)]
                  ['&' (rune pam %smpm expi)]
                  ['~' (rune sig %smsg expi)]
                  [';' (rune sem %smsm expb)]
                  ['*' (rune tar %smtr expb)]
                  ['=' (rune tis %smts expb)]
                  ['?' (rune wut %smwt expb)]
                ==
              ==
            :-  '='
              ;~  pfix  tis
                %-  stew  :~
                  ['|' (rune bar %tsbr expb)]
                  ['.' (rune dot %tsdt expc)]
                  ['^' (rune ket %tskt expd)]
                  [':' (rune col %tscl expl)]
                  ['<' (rune gal %tsgl expb)]
                  ['>' (rune gar %tsgr expb)]
                  ['-' (rune hep %tshp expb)]
                  ['+' (rune lus %tsls expb)]
                  ['~' (rune sig %tssg expi)]
                ==
              ==
            :-  '?'
              ;~  pfix  wut
                %-  stew  :~
                  ['|' (rune bar %wtbr exps)]
                  [':' (rune col %wtcl expc)]
                  ['.' (rune dot %wtdt expc)]
                  ['<' (rune gal %wtgl expb)]
                  ['>' (rune gar %wtgr expb)]
                  ['-' (rune hep %wthp exph)]
                  ['^' (rune ket %wtkt expc)]
                  ['=' (rune tis %wtts expb)]
                  ['+' (rune lus %wtls expm)]
                  ['&' (rune pam %wtpm exps)]
                  ['@' (rune pat %wtpt expc)]
                  ['~' (rune sig %wtsg expc)]
                  ['!' (rune zap %wtzp expa)]
                ==
              ==
            :-  '!'
              ;~  pfix  zap
                %-  stew  :~
                  [':' ;~(pfix col (toad expz))]
                  [',' (rune com %zpcm expb)]
                  [';' (rune sem %zpsm expb)]
                  ['^' ;~(pfix ket (cook prey (toad exps)))]
                  ['>' (rune gar %zpgr expa)]
                  ['=' (rune tis %zpts expa)]
                ==
              ==
        ==
    |%
    ::
    ++  boog
      %+  knee  [p=*term q=*foot]  |.  ~+
      ;~  pfix  lus
        ;~  pose
          %+  cook 
            |=([a=%ash b=term c=gene] [b a c])
          ;~  gunk
            (cold %ash (just '+'))
            ;~(pose (cold %$ buc) sym)
            loaf
          ==
        ::
          %+  cook 
            |=([a=%elm b=term c=gene] [b a c])
          ;~  gunk
            (cold %elm (just '-'))
            ;~(pose (cold %$ buc) sym)
            loaf
          ==
        ::
          %+  cook
            |=([a=%oak b=term] [b a ~])
          ;~  gunk
            (cold %oak (just '|'))
            ;~(pose (cold %$ buc) sym) 
          ==
        ==
      ==
    ::
    ++  wisp
      %-  ulva
      %+  cook
        |=(a=(list ,[p=term q=foot]) (~(gas by *(map term foot)) a))
      (most muck boog)
    ::
    ++  toad
      |*  har=_expa
      =+  dur=(ifix [pel per] $:har(tol |))
      ?:(tol ;~(pose ;~(pfix gap $:har(tol &)) dur) dur)
    ::
    ++  rune
      |*  [dif=_rule tuq=* har=_expa]
      ;~(pfix dif (stag tuq (toad har)))
    ::
    ++  glop  ~+((glue mash))
    ++  gunk  ~+((glue muck))
    ++  butt  |*(zor=_rule ?:(tol ;~(sfix zor ;~(plug gap duz)) zor))
    ++  ulva  |*(zor=_rule ?.(tol fail ;~(sfix zor ;~(plug gap dun))))
    ++  neck  ;~(pose duz ;~(pfix ;~(plug duq gap) wisp))
    ++  hank  (most muck loaf)
    ++  loaf  ?:(tol tall wide)
    ++  mash  ?:(tol gap ;~(plug com ace))
    ++  muck  ?:(tol gap ace)
    ++  rack  (most mash ;~(gunk loaf loaf))
    ++  expa  |.(loaf)
    ++  expb  |.(;~(gunk loaf loaf))
    ++  expc  |.(;~(gunk loaf loaf loaf))
    ++  expd  |.(;~(gunk loaf loaf loaf loaf))
    ++  exps  |.((butt hank))
    ++  expl  |.(;~(gunk (butt rack) loaf))
    ++  expe  |.(wisp)
    ++  expf  |.(;~(gunk loaf loaf loaf loaf))
    ++  expg  |.(;~(gunk sym loaf))
    ++  exph  |.((butt ;~(gunk loaf rack)))
    ++  expi  |.((butt ;~(gunk loaf hank)))
    ++  expj  |.((butt ;~(gunk rope rack)))
    ++  expk  |.(;~(gunk loaf ;~(plug loaf (easy ~)))) 
    ++  expm  |.((butt ;~(gunk loaf loaf rack)))
    ++  expn  |.((stag %cltr (butt hank)))
    ++  expp  |.((butt ;~(gunk rope loaf rack)))
    ++  expq  |.(;~(gunk rope loaf loaf))
    ++  expr  |.(;~(gunk loaf wisp))
    ++  expz  |.(loaf(bug &))
    ++  hina  |.(;~(gunk (ifix [sel ser] ;~(gunk dem dem)) loaf))
    ++  hinb  |.(;~(gunk bont loaf))
    ++  hinc  |.(;~(pose ;~(gunk bony loaf) ;~(plug (easy ~) loaf)))
    ++  hind  |.(;~(gunk bonk loaf bonz loaf))
    ++  hine  |.(;~(gunk bonk loaf))
    ++  hinf  |.
      ;~  pose 
        ;~(gunk (cook lent (stun [1 3] gar)) loaf loaf)
        (stag 0 ;~(gunk loaf loaf))
      ==
    ++  bonk  
      ;~  pfix  cen
        ;~  pose
          ;~(plug sym ;~(pfix col ;~(plug sym ;~(pfix dot ;~(pfix dot dem)))))
          ;~(plug sym ;~(pfix col ;~(plug sym ;~(pfix dot dem))))
          ;~(plug sym ;~(pfix dot dem))
          sym
        ==
      ==
    ++  bont  ;~((bend) sym ;~(pfix dot ;~(pose wide ;~(pfix muck loaf))))
    ++  bony  (cook |=(a=(list) (lent a)) (plus tis))
    ++  bonz
      ;~  pose
        (cold ~ sig)
        %+  ifix
          ?:(tol [p=;~(plug duz gap) q=;~(plug gap duz)] [p=pel q=per])
        (more mash ;~(gunk ;~(pfix cen sym) loaf))
      ==
    --
  ::
  ++  lung
    ~+
    %-  bend
    |=  :-  ros=gene 
            ^=  vil
              $%  [%tis p=gene] 
                  [%col p=gene] 
                  [%ket p=gene]
                  [%pel p=(list ,[p=gene q=gene])]
              ==
    ^-  (unit gene)
    ?-    -.vil
        %tis 
      ?-  ros
        [%cnbc @]        [~ %ktts p.ros p.vil]
        [%cnhx [@ ~]]    [~ %ktts i.p.ros p.vil]
        [%cnts [@ ~] ~]  [~ %ktts i.p.ros p.vil]
        [%zpcb *]        $(ros q.ros)
        *                ~
      ==
        %col  [~ %tsgl ros p.vil]
        %pel  [~ %cnts ~(rake ap ros) p.vil]
        %ket  [~ ros p.vil]
    ==
  ::
  ++  long
    %+  knee  *gene  |.  ~+
    ;~  lung
      scat
      ;~  pose
        ;~(plug (cold %tis tis) wide)
        ;~(plug (cold %col col) wide)
        ;~(plug (cold %ket ket) wide)
        ;~  plug
          (easy %pel)
          (ifix [pel per] loon)
        ==
      ==
    ==
  ::
  ++  loon  (most ;~(plug com ace) ;~(glam wide wide))
  ++  rope
    %+  knee
      *wing
    |.  ~+
    %+  (slug `wing`~ |=([a=wing b=wing] (weld a b)))
      dot
    ;~  pose
      %+  cook  
        |=([a=(list) b=term] [?~(a b [%| (lent a) b]) ~])
      ;~(plug (star ket) ;~(pose sym (cold %$ buc)))
    ::
      %+  cook
        |=(a=limb [a ~])
      %+  cook 
        |=(a=axis [%& a]) 
      ;~  pose 
        ;~(pfix lus dim:ag) 
        ;~(pfix pam (cook |=(a=@ ?:(=(0 a) 0 (mul 2 +($(a (dec a)))))) dim:ag))
        ;~(pfix bar (cook |=(a=@ ?:(=(0 a) 1 +((mul 2 $(a (dec a)))))) dim:ag))
        ven 
        (cold 1 dot)
      ==
    ==
  ::
  ++  tall  (knee *gene |.(~+((wart ;~(pose (norm &) long)))))
  ++  wide  (knee *gene |.(~+((wart ;~(pose (norm |) long)))))
  ++  wart  
    |*  zor=_rule 
    %+  here 
      |=  [a=pint b=gene] 
      ?:(bug [%zpcb [wer a] b] b)
    zor
  --

Comments



Parts of this document are generated automatically. Edits within the comments section will be preserved.

Clone this wiki locally