+++ title = "4k: Atom Printing" weight = 38 template = "doc.html" +++ ### `++co` Literal rendering engine A door that contains arms that operate on the sample coin `lot`. #### Accepts #### Produces `lot` is a `++coin`. #### Source ```hoon ++ co !. ~% %co ..co ~ =< |_ lot/coin ``` #### Examples ``` > < 3.nta { lot/{$many {$~ $ta @t} {$~ $ud @ud} $~} <10.cfg 4.jjn {rep/"" <402.arm 110.jyx 1.ztu $151>}> } > ``` ------------------------------------------------------------------------ ### `++rear:co` Prepend & render as tape Renders a coin `lot` as a tape prepended to the sample tape `rom`. #### Accepts #### Produces `rom` is a `pe` `lot` is a `++coin`. #### Source ```hoon ++ rear |=(rom/tape =>(.(rex rom) rend)) ``` #### Examples ``` > (~(rear co %$ %ux 200) "--ha") "0xc8--ha" ``` ------------------------------------------------------------------------ ### `++rent:co` Render as span Renders a coin `lot` as a span. #### Accepts #### Produces `lot` is a `++coin`. #### Source ```hoon ++ rent `@ta`(rap 3 rend) ``` #### Examples ``` > ~(rent co %$ %ux 200) ~.0xc8 > `@t`~(rent co %$ %ux 200) '0xc8' ``` ------------------------------------------------------------------------ ### `++rend:co` Render as tape Renders a coin `lot` as a tape. #### Accepts #### Produces `lot` is a `++coin`. #### Source ```hoon ++ rend ^- tape ?: ?=($blob -.lot) ['~' '0' ((v-co 1) (jam p.lot))] ?: ?=($many -.lot) :- '.' |- ^- tape ?~ p.lot ['_' '_' rep] ['_' (weld (trip (wack rent(lot i.p.lot))) $(p.lot t.p.lot))] =+ [yed=(end 3 1 p.p.lot) hay=(cut 3 [1 1] p.p.lot)] |- ^- tape ?+ yed (z-co q.p.lot) $c ['~' '-' (weld (rip 3 (wood (tuft q.p.lot))) rep)] $d ?+ hay (z-co q.p.lot) $a =+ yod=(yore q.p.lot) => ^+(. .(rep ?~(f.t.yod rep ['.' (s-co f.t.yod)]))) => ^+ . %= . rep ?: &(=(~ f.t.yod) =(0 h.t.yod) =(0 m.t.yod) =(0 s.t.yod)) rep => .(rep ['.' (y-co s.t.yod)]) => .(rep ['.' (y-co m.t.yod)]) ['.' '.' (y-co h.t.yod)] == => .(rep ['.' (a-co d.t.yod)]) => .(rep ['.' (a-co m.yod)]) => .(rep ?:(a.yod rep ['-' rep])) ['~' (a-co y.yod)] :: $r =+ yug=(yell q.p.lot) => ^+(. .(rep ?~(f.yug rep ['.' (s-co f.yug)]))) :- '~' ?: &(=(0 d.yug) =(0 m.yug) =(0 h.yug) =(0 s.yug)) ['s' '0' rep] => ^+(. ?:(=(0 s.yug) . .(rep ['.' 's' (a-co s.yug)]))) => ^+(. ?:(=(0 m.yug) . .(rep ['.' 'm' (a-co m.yug)]))) => ^+(. ?:(=(0 h.yug) . .(rep ['.' 'h' (a-co h.yug)]))) => ^+(. ?:(=(0 d.yug) . .(rep ['.' 'd' (a-co d.yug)]))) +.rep == :: $f ?: =(& q.p.lot) ['.' 'y' rep] ?:(=(| q.p.lot) ['.' 'n' rep] (z-co q.p.lot)) :: $n ['~' rep] $i ?+ hay (z-co q.p.lot) $f ((ro-co [3 10 4] |=(a/@ ~(d ne a))) q.p.lot) $s ((ro-co [4 16 8] |=(a/@ ~(x ne a))) q.p.lot) == :: $p =+ dyx=(met 3 q.p.lot) :- '~' ?: (lte dyx 1) (weld (trip (tod:po q.p.lot)) rep) ?: =(2 dyx) ;: weld (trip (tos:po (end 3 1 q.p.lot))) (trip (tod:po (rsh 3 1 q.p.lot))) rep == =+ [dyz=(met 5 q.p.lot) fin=| dub=&] |- ^- tape ?: =(0 dyz) rep %= $ fin & dub !dub dyz (dec dyz) q.p.lot (rsh 5 1 q.p.lot) rep =+ syb=(wren:un (end 5 1 q.p.lot)) =+ cog=~(zig mu [(rsh 4 1 syb) (end 4 1 syb)]) ;: weld (trip (tos:po (end 3 1 p.cog))) (trip (tod:po (rsh 3 1 p.cog))) `tape`['-' ~] (trip (tos:po (end 3 1 q.cog))) (trip (tod:po (rsh 3 1 q.cog))) `tape`?.(fin ~ ['-' ?.(dub ~ ['-' ~])]) rep == == :: $r ?+ hay (z-co q.p.lot) $d ['.' '~' (r-co (rlyd q.p.lot))] $h ['.' '~' '~' (r-co (rlyh q.p.lot))] $q ['.' '~' '~' '~' (r-co (rlyq q.p.lot))] $s ['.' (r-co (rlys q.p.lot))] == :: $u ?: ?=($c hay) %+ welp ['0' 'c' (reap (pad:fa q.p.lot) '1')] (c-co (enc:fa q.p.lot)) =- (weld p.gam ?:(=(0 q.p.lot) `tape`['0' ~] q.gam)) ^= gam ^- {p/tape q/tape} ?+ hay [~ ((ox-co [10 3] |=(a/@ ~(d ne a))) q.p.lot)] $b [['0' 'b' ~] ((ox-co [2 4] |=(a/@ ~(d ne a))) q.p.lot)] $i [['0' 'i' ~] ((d-co 1) q.p.lot)] $x [['0' 'x' ~] ((ox-co [16 4] |=(a/@ ~(x ne a))) q.p.lot)] $v [['0' 'v' ~] ((ox-co [32 5] |=(a/@ ~(x ne a))) q.p.lot)] $w [['0' 'w' ~] ((ox-co [64 5] |=(a/@ ~(w ne a))) q.p.lot)] == :: $s %+ weld ?:((syn:si q.p.lot) "--" "-") $(yed 'u', q.p.lot (abs:si q.p.lot)) :: $t ?: =('a' hay) ?: =('s' (cut 3 [2 1] p.p.lot)) (weld (rip 3 q.p.lot) rep) ['~' '.' (weld (rip 3 q.p.lot) rep)] ['~' '~' (weld (rip 3 (wood q.p.lot)) rep)] == -- ``` #### Examples ``` > ~(rend co %$ %ux 200) "0xc8" > ~(rend co %many ~[[%$ ux+200] [%$ p+40]]) "._0xc8_~~tem__" > ~(rend co %$ %p 32.819) "~pillyt" > ~(rend co %$ %ux 18) "0x12" > ~(rend co [%$ p=[p=%if q=0x7f00.0001]]) ".127.0.0.1" > `@ux`.127.0.0.1 2.130.706.433 > ~(rend co %many ~[[%$ %ud 20] [%$ %uw 133] [%$ %tas 'sam']]) "._20_0w25_sam__" > ~(rend co %blob [1 1]) "~0ph" > ~0ph [1 1] > `@uv`(jam [1 1]) 0vph ``` ---