on master help sign in
Merge pull request #1300 from urbit/update-stdlib-4k-4l

update stdlib 4k and 4l

commitf43ec86c57b98f9b76e0d9ac077a03516779fb45 authortinnus-napbus <77721746+tinnus-napbus@users.noreply.github.com> dateFri 7 Jan 2022, 03:04 (5 years ago) parent0cdc37471780dc
4 files changed+1350−600
content/docs/hoon/reference/stdlib/4k.md+741−176 content/docs/hoon/reference/stdlib/4l.md+424−412 content/docs/hoon/reference/stdlib/table-of-contents.md+48−8 lib/glossary.js+137−4
content/docs/hoon/reference/stdlib/4k.md+741−176
@@ -8,30 +8,38 @@ template = "doc.html"
88
99Literal rendering engine
1010
11−A door that contains arms that operate on the sample coin `lot`.
11+`++co` contains three parts:
1212
13−#### Accepts
13+- A door that contains arms that operate on the sample coin `lot`.
14+- A core of rendering idioms.
15+- A core of additional formatting functions used internally.
1416
15−#### Produces
17+#### Accepts
1618
17−`lot` is a `++coin`.
19+`lot` is a `coin`.
1820
1921#### Source
2022
23+The arm begins with the door:
24+
2125```hoon
22− ++ co !.
23− ~% %co ..co ~
24− =< |_ lot/coin
26+++ co
27+ !:
28+ ~% %co ..co ~
29+ =< |_ lot=coin
2530```
2631
27−#### Examples
32+Then after that the rendering idiom core begins with:
2833
34+```hoon
35+=| rep=tape
36+=< |%
2937```
30− > < 3.nta
31− { lot/{$many {$~ $ta @t} {$~ $ud @ud} $~}
32− <10.cfg 4.jjn {rep/"" <402.arm 110.jyx 1.ztu $151>}>
33− }
34− >
38+
39+And finally the third core:
40+
41+```hoon
42+|%
3543```
3644
3745---
@@ -44,53 +52,57 @@ Renders a coin `lot` as a tape prepended to the sample tape `rom`.
4452
4553#### Accepts
4654
47−#### Produces
55+`lot` is a `coin`, and is the sample of `++co`.
4856
49−`rom` is a `pe`
57+`rom` is a `tape`.
5058
51−`lot` is a `++coin`.
59+#### Produces
60+
61+A `tape`.
5262
5363#### Source
5464
5565```hoon
56− ++ rear |=(rom/tape =>(.(rex rom) rend))
66+++ rear |=(rom=tape rend(rep rom))
5767```
5868
5969#### Examples
6070
6171```
62− > (~(rear co %$ %ux 200) "--ha")
63− "0xc8--ha"
72+> (~(rear co %$ %ux 200) "--ha")
73+"0xc8--ha"
6474```
6575
6676---
6777
6878### `++rent:co`
6979
70−Render as span
80+Render as knot
7181
72−Renders a coin `lot` as a span.
82+Renders a coin `lot` as a `knot`.
7383
7484#### Accepts
7585
86+`lot` is a `coin`, and is the sample of `++co`.
87+
7688#### Produces
7789
78−`lot` is a `++coin`.
90+A `knot`.
7991
8092#### Source
8193
8294```hoon
83− ++ rent `@ta`(rap 3 rend)
95+++ rent ~+ `@ta`(rap 3 rend)
8496```
8597
8698#### Examples
8799
88100```
89− > ~(rent co %$ %ux 200)
90− ~.0xc8
101+> ~(rent co %$ %ux 200)
102+~.0xc8
91103
92− > `@t`~(rent co %$ %ux 200)
93− '0xc8'
104+> `@t`~(rent co %$ %ux 200)
105+'0xc8'
94106```
95107
96108---
@@ -99,178 +111,731 @@ Renders a coin `lot` as a span.
99111
100112Render as tape
101113
102−Renders a coin `lot` as a tape.
114+Renders a coin `lot` as a `tape`.
115+
116+#### Accepts
117+
118+`lot` is a `coin`, and is the sample of `++co`.
119+
120+#### Produces
121+
122+A `tape`.
123+
124+#### Source
125+
126+```hoon
127+++ rend
128+ ^- tape
129+ ~+
130+ ?: ?=(%blob -.lot)
131+ ['~' '0' ((v-co 1) (jam p.lot))]
132+ ?: ?=(%many -.lot)
133+ :- '.'
134+ |- ^- tape
135+ ?~ p.lot
136+ ['_' '_' rep]
137+ ['_' (weld (trip (wack rent(lot i.p.lot))) $(p.lot t.p.lot))]
138+ =+ [yed=(end 3 p.p.lot) hay=(cut 3 [1 1] p.p.lot)]
139+ |- ^- tape
140+ ?+ yed (z-co q.p.lot)
141+ %c ['~' '-' (weld (rip 3 (wood (tuft q.p.lot))) rep)]
142+ %d
143+ ?+ hay (z-co q.p.lot)
144+ %a
145+ =+ yod=(yore q.p.lot)
146+ =? rep ?=(^ f.t.yod) ['.' (s-co f.t.yod)]
147+ =? rep !&(?=(~ f) =(0 h) =(0 m) =(0 s)):t.yod
148+ =. rep ['.' (y-co s.t.yod)]
149+ =. rep ['.' (y-co m.t.yod)]
150+ ['.' '.' (y-co h.t.yod)]
151+ =. rep ['.' (a-co d.t.yod)]
152+ =. rep ['.' (a-co m.yod)]
153+ =? rep !a.yod ['-' rep]
154+ ['~' (a-co y.yod)]
155+ ::
156+ %r
157+ =+ yug=(yell q.p.lot)
158+ =? rep ?=(^ f.yug) ['.' (s-co f.yug)]
159+ :- '~'
160+ ?: &(=(0 d.yug) =(0 m.yug) =(0 h.yug) =(0 s.yug))
161+ ['s' '0' rep]
162+ =? rep !=(0 s.yug) ['.' 's' (a-co s.yug)]
163+ =? rep !=(0 m.yug) ['.' 'm' (a-co m.yug)]
164+ =? rep !=(0 h.yug) ['.' 'h' (a-co h.yug)]
165+ =? rep !=(0 d.yug) ['.' 'd' (a-co d.yug)]
166+ +.rep
167+ ==
168+ ::
169+ %f
170+ ?: =(& q.p.lot)
171+ ['.' 'y' rep]
172+ ?:(=(| q.p.lot) ['.' 'n' rep] (z-co q.p.lot))
173+ ::
174+ %n ['~' rep]
175+ %i
176+ ?+ hay (z-co q.p.lot)
177+ %f ((ro-co [3 10 4] |=(a=@ ~(d ne a))) q.p.lot)
178+ %s ((ro-co [4 16 8] |=(a=@ ~(x ne a))) q.p.lot)
179+ ==
180+ ::
181+ %p
182+ =+ sxz=(fein:ob q.p.lot)
183+ =+ dyx=(met 3 sxz)
184+ :- '~'
185+ ?: (lte dyx 1)
186+ (weld (trip (tod:po sxz)) rep)
187+ =+ dyy=(met 4 sxz)
188+ =| imp=@ud
189+ |- ^- tape
190+ ?: =(imp dyy)
191+ rep
192+ %= $
193+ imp +(imp)
194+ rep =/ log (cut 4 [imp 1] sxz)
195+ ;: weld
196+ (trip (tos:po (rsh 3 log)))
197+ (trip (tod:po (end 3 log)))
198+ ?:(=((mod imp 4) 0) ?:(=(imp 0) "" "--") "-")
199+ rep
200+ == ==
201+ ::
202+ %q
203+ :+ '.' '~'
204+ =; res=(pair ? tape)
205+ (weld q.res rep)
206+ %+ roll
207+ =* val q.p.lot
208+ ?:(=(0 val) ~[0] (rip 3 val))
209+ |= [q=@ s=? r=tape]
210+ :- !s
211+ %+ weld
212+ (trip (?:(s tod:po tos:po) q))
213+ ?.(&(s !=(r "")) r ['-' r])
214+ ::
215+ %r
216+ ?+ hay (z-co q.p.lot)
217+ %d ['.' '~' (r-co (rlyd q.p.lot))]
218+ %h ['.' '~' '~' (r-co (rlyh q.p.lot))]
219+ %q ['.' '~' '~' '~' (r-co (rlyq q.p.lot))]
220+ %s ['.' (r-co (rlys q.p.lot))]
221+ ==
222+ ::
223+ %u
224+ ?: ?=(%c hay)
225+ %+ welp ['0' 'c' (reap (pad:fa q.p.lot) '1')]
226+ (c-co (enc:fa q.p.lot))
227+ ::
228+ =; gam=(pair tape tape)
229+ (weld p.gam ?:(=(0 q.p.lot) `tape`['0' ~] q.gam))
230+ ?+ hay [~ ((ox-co [10 3] |=(a=@ ~(d ne a))) q.p.lot)]
231+ %b [['0' 'b' ~] ((ox-co [2 4] |=(a=@ ~(d ne a))) q.p.lot)]
232+ %i [['0' 'i' ~] ((d-co 1) q.p.lot)]
233+ %x [['0' 'x' ~] ((ox-co [16 4] |=(a=@ ~(x ne a))) q.p.lot)]
234+ %v [['0' 'v' ~] ((ox-co [32 5] |=(a=@ ~(x ne a))) q.p.lot)]
235+ %w [['0' 'w' ~] ((ox-co [64 5] |=(a=@ ~(w ne a))) q.p.lot)]
236+ ==
237+ ::
238+ %s
239+ %+ weld
240+ ?:((syn:si q.p.lot) "--" "-")
241+ $(yed 'u', q.p.lot (abs:si q.p.lot))
242+ ::
243+ %t
244+ ?: =('a' hay)
245+ ?: =('s' (cut 3 [2 1] p.p.lot))
246+ (weld (rip 3 q.p.lot) rep)
247+ ['~' '.' (weld (rip 3 q.p.lot) rep)]
248+ ['~' '~' (weld (rip 3 (wood q.p.lot)) rep)]
249+ ==
250+```
251+
252+#### Examples
253+
254+```
255+> ~(rend co %$ %ux 200)
256+"0xc8"
257+
258+> ~(rend co %many ~[[%$ ux+200] [%$ p+40]])
259+"._0xc8_~~tem__"
260+
261+> ~(rend co %$ %p 32.819)
262+"~lasmev"
263+
264+> ~(rend co %$ %ux 18)
265+"0x12"
266+
267+> ~(rend co [%$ p=[p=%if q=0x7f00.0001]])
268+".127.0.0.1"
269+
270+> ~(rend co %many ~[[%$ %ud 20] [%$ %uw 133] [%$ %tas 'sam']])
271+"._20_0w25_sam__"
272+
273+> ~(rend co %blob [1 1])
274+"~0ph"
275+```
276+
277+---
278+
279+### `++a-co:co`
280+
281+Render decimal
282+
283+Render `dat` as a decimal integer without separators.
284+
285+#### Accepts
286+
287+`dat` is an atom.
288+
289+#### Produces
290+
291+A `tape`
292+
293+#### Source
294+
295+```hoon
296+++ a-co |=(dat=@ ((d-co 1) dat))
297+```
298+
299+#### Examples
300+
301+```
302+> (a-co:co 123.456.789)
303+"123456789"
304+```
305+
306+---
307+
308+### `++c-co:co`
309+
310+Render base58check
311+
312+Renders the given `atom` as a base58check `tape`.
313+
314+#### Accepts
315+
316+An `atom`.
317+
318+#### Produces
319+
320+A `tape`.
321+
322+#### Source
323+
324+```hoon
325+++ c-co (em-co [58 1] |=([? b=@ c=tape] [~(c ne b) c]))
326+```
327+
328+#### Examples
329+
330+```
331+> (enc:fa 0xdead.beef)
332+0xdead.beef.938b.8b0c
333+
334+> (c-co:co 0xdead.beef.938b.8b0c)
335+"eFGDJSVvRHd"
336+```
337+
338+---
339+
340+### `++d-co:co`
341+
342+Render decimal with min length
343+
344+Render `hol` as a decimal integer without separators and with a minimum length
345+of `min`. If `hol` has less than `min` digits, leading zeros will be added to
346+make up the difference.
347+
348+#### Accepts
349+
350+`min` is an atom.
351+
352+`hol` is an atom.
353+
354+#### Produces
355+
356+A `tape`.
357+
358+#### Source
359+
360+```hoon
361+++ d-co |=(min=@ (em-co [10 min] |=([? b=@ c=tape] [~(d ne b) c])))
362+```
363+
364+#### Examples
365+
366+```
367+> ((d-co:co 1) 123.456)
368+"123456"
369+
370+> ((d-co:co 9) 123.456)
371+"000123456"
372+```
373+
374+---
375+
376+### `++r-co:co`
377+
378+Render floating point
379+
380+Render decimal float `a` as a `tape`.
381+
382+#### Accepts
383+
384+`a` is a `++dn`.
385+
386+#### Produces
387+
388+A `tape`.
389+
390+#### Source
391+
392+```hoon
393+++ r-co
394+ |= a=dn
395+ ?: ?=([%i *] a) (weld ?:(s.a "inf" "-inf") rep)
396+ ?: ?=([%n *] a) (weld "nan" rep)
397+ =; rep ?:(s.a rep ['-' rep])
398+ =/ f ((d-co 1) a.a)
399+ =^ e e.a
400+ =/ e=@s (sun:si (lent f))
401+ =/ sci :(sum:si e.a e -1)
402+ ?: (syn:si (dif:si e.a --3)) [--1 sci] :: 12000 -> 12e3 e>+2
403+ ?: !(syn:si (dif:si sci -2)) [--1 sci] :: 0.001 -> 1e-3 e<-2
404+ [(sum:si sci --1) --0] :: 1.234e2 -> '.'@3 -> 123 .4
405+ =? rep !=(--0 e.a)
406+ :(weld ?:((syn:si e.a) "e" "e-") ((d-co 1) (abs:si e.a)))
407+ (weld (ed-co e f) rep)
408+```
409+
410+#### Examples
411+
412+```
413+> `tape`(r-co:co (rlys .3.14))
414+"3.14"
415+
416+> `tape`(r-co:co (rlys .1.681557e-39))
417+"1.681557e-39"
418+```
419+
420+---
421+
422+### `++s-co:co`
423+
424+Render hex list
425+
426+Render `esc`, a list of atoms, as hex with a dot before each value. Values less
427+than two bytes in length will be padded with zeros.
428+
429+#### Accepts
430+
431+`esc` is a `(list @)`.
432+
433+#### Produces
434+
435+A `tape`.
436+
437+#### Source
438+
439+```hoon
440+++ s-co
441+ |= esc=(list @) ^- tape
442+ ?~ esc rep
443+ ['.' =>(.(rep $(esc t.esc)) ((x-co 4) i.esc))]
444+```
445+
446+#### Examples
447+
448+```
449+> `tape`(s-co:co ~[0xdead 0xbeef 0xcafe])
450+".dead.beef.cafe"
451+
452+> `tape`(s-co:co ~[0xa 0xb 0xc])
453+".000a.000b.000c"
454+
455+> `tape`(s-co:co ~[0xdead.beef])
456+".deadbeef"
457+```
458+
459+---
460+
461+### `++v-co:co`
462+
463+Render base-32 with minimum length
464+
465+Render `hol` as base-32 with a minimum length of `min`. If `hol` is shorter than
466+`min` it will be padded with zeros.
467+
468+#### Accepts
469+
470+`min` is a `@ud`.
471+
472+`hol` is an atom.
473+
474+#### Produces
475+
476+A `tape`.
477+
478+#### Source
479+
480+```hoon
481+++ v-co |=(min=@ (em-co [32 min] |=([? b=@ c=tape] [~(v ne b) c])))
482+```
483+
484+#### Examples
485+
486+```
487+> `tape`((v-co:co 1) 0v2l7.eiug3.0mbd9)
488+"2l7eiug30mbd9"
489+
490+> `tape`((v-co:co 20) 0v2l7.eiug3.0mbd9)
491+"00000002l7eiug30mbd9"
492+```
493+
494+---
495+
496+### `++w-co:co`
497+
498+Render base-64 with minimum length
499+
500+Render `hol` as base-64 with a minimum length of `min`. If `hol` is horter than
501+`min` it will be padded with zeros.
502+
503+#### Accepts
504+
505+`min` is a `@ud`.
506+
507+`hol` is an atom.
508+
509+#### Produces
510+
511+A `tape`.
512+
513+#### Source
514+
515+```hoon
516+++ w-co |=(min=@ (em-co [64 min] |=([? b=@ c=tape] [~(w ne b) c])))
517+```
518+
519+#### Examples
520+
521+```
522+> `tape`((w-co:co 1) 0w2.OtBSR.pPVeT)
523+"2OtBSRpPVeT"
524+
525+> `tape`((w-co:co 20) 0w2.OtBSR.pPVeT)
526+"0000000002OtBSRpPVeT"
527+```
528+
529+---
530+
531+### `++x-co:co`
532+
533+Render hex with minimum length
534+
535+Render `hol` as hex with a minimum length of `min`. If `hol` is horter than
536+`min` it will be padded with zeros.
537+
538+#### Accepts
539+
540+`min` is a `@ud`.
541+
542+`hol` is an atom.
543+
544+#### Produces
545+
546+A `tape`.
547+
548+#### Source
549+
550+```hoon
551+++ x-co |=(min=@ (em-co [16 min] |=([? b=@ c=tape] [~(x ne b) c])))
552+```
553+
554+#### Examples
555+
556+```
557+> `tape`((x-co:co 1) 0xdead.beef)
558+"deadbeef"
559+
560+> `tape`((x-co:co 20) 0xdead.beef)
561+"000000000000deadbeef"
562+```
563+
564+---
565+
566+### `++y-co:co`
567+
568+Render decimal with at least two digits
569+
570+Render `dat` as a decimal with a minimum of two digits. If `dat` is less than
571+two digits it will be padded with zeros.
572+
573+#### Accepts
574+
575+`dat` is an atom.
576+
577+#### Produces
578+
579+A `tape`.
580+
581+#### Source
582+
583+```hoon
584+++ y-co |=(dat=@ ((d-co 2) dat))
585+```
586+
587+#### Examples
588+
589+```
590+> (y-co:co 0)
591+"00"
592+
593+> (y-co:co 1)
594+"01"
595+
596+> (y-co:co 123)
597+"123"
598+
599+> (y-co:co 123.456)
600+"123456"
601+```
602+
603+---
604+
605+### `++z-co:co`
606+
607+Render '0x'-prefixed hex
608+
609+Render `dat` as hex with a `0x` prefix.
610+
611+#### Accepts
612+
613+`dat` is an atom.
614+
615+#### Produces
616+
617+A `tape`.
618+
619+#### Source
620+
621+```hoon
622+++ z-co |=(dat=@ `tape`['0' 'x' ((x-co 1) dat)])
623+```
624+
625+#### Examples
626+
627+```
628+> (z-co:co 123)
629+"0x7b"
630+
631+> (z-co:co 0xdead.beef)
632+"0xdeadbeef"
633+
634+> (z-co:co 0)
635+"0x0"
636+```
637+
638+---
639+
640+### `++em-co:co`
641+
642+Render in numeric base
643+
644+In base `bas`, format `min` digits of `hol` with `par`. This is used internally
645+by other rendering functions.
646+
647+- `hol` is processed least-significant digit first.
648+- All available digits in `hol` will be processed, but
649+ `min` digits can exceed the number available in `hol`
650+- `par` handles all accumulated output on each call, and can edit it, prepend or
651+ append digits, etc.
652+- Until `hol` is exhausted, `par`'s sample is `[| digit output]`, subsequently,
653+ it's `[& 0 output]`.
654+
655+#### Accepts
656+
657+`[bas=@ min=@]`, where `bas` is the numeric base and `min` is the minimum
658+length.
659+
660+`par` is a `gate` of `$-([? @ tape] tape)`.
661+
662+`hol` is an atom.
663+
664+#### Produces
665+
666+A `tape`.
667+
668+#### Source
669+
670+```hoon
671+++ em-co
672+ |= [[bas=@ min=@] par=$-([? @ tape] tape)]
673+ |= hol=@
674+ ^- tape
675+ ?: &(=(0 hol) =(0 min))
676+ rep
677+ =/ [dar=@ rad=@] (dvr hol bas)
678+ %= $
679+ min ?:(=(0 min) 0 (dec min))
680+ hol dar
681+ rep (par =(0 dar) rad rep)
682+ ==
683+```
684+
685+#### Examples
686+
687+```
688+> ((em-co:co [16 10] |=([? b=@ c=tape] [~(x ne b) c])) 0xbeef)
689+"000000beef"
690+```
691+
692+---
693+
694+### `++ed-co:co`
695+
696+Format with decimal place
697+
698+Format `int` by specifying its size with `exp`, which may be negative. This is
699+used internally by other rendering functions.
700+
701+#### Accepts
702+
703+`exp` is a `@s`.
704+
705+`int` is a `tape`.
706+
707+#### Produces
708+
709+A `tape`.
710+
711+#### Source
712+
713+```hoon
714+++ ed-co
715+ |= [exp=@s int=tape] ^- tape
716+ =/ [pos=? dig=@u] [=(--1 (cmp:si exp --0)) (abs:si exp)]
717+ ?. pos
718+ (into (weld (reap +(dig) '0') int) 1 '.')
719+ =/ len (lent int)
720+ ?: (lth dig len) (into int dig '.')
721+ (weld int (reap (sub dig len) '0'))
722+```
723+
724+#### Examples
725+
726+```
727+> (ed-co:co --3 "100")
728+"100"
729+
730+> (ed-co:co --5 "100")
731+"10000"
732+
733+> (ed-co:co -1 "100")
734+"0.0100"
735+
736+> (ed-co:co -5 "100")
737+"0.00000100"
738+```
739+
740+---
741+
742+### `++ox-co:co`
743+
744+Format dot-separated digits in numeric base
745+
746+In base `bas`, format each digit of `hol` with gate `dug`, with '.' separators
747+every `gop` digits. This is used internally by other rendering functions.
748+
749+- `hol` is processed least-significant digit first.
750+- `dug` handles individual digits, output is prepended.
751+- Every segment but the last is zero-padded to `gop`.
103752
104753#### Accepts
105754
755+`[bas=@ gop=@]` where `bas` is the numeric base and `gop` is dot separator
756+frequency.
757+
758+`dug` is a `gate` of `$-(@ @)`.
759+
760+`hol` is an atom.
761+
106762#### Produces
107763
108−`lot` is a `++coin`.
764+A `tape`.
109765
110766#### Source
111767
112768```hoon
113− ++ rend
114− ^- tape
115− ?: ?=($blob -.lot)
116− ['~' '0' ((v-co 1) (jam p.lot))]
117− ?: ?=($many -.lot)
118− :- '.'
119− |- ^- tape
120− ?~ p.lot
121− ['_' '_' rep]
122− ['_' (weld (trip (wack rent(lot i.p.lot))) $(p.lot t.p.lot))]
123− =+ [yed=(end 3 1 p.p.lot) hay=(cut 3 [1 1] p.p.lot)]
124− |- ^- tape
125− ?+ yed (z-co q.p.lot)
126− $c ['~' '-' (weld (rip 3 (wood (tuft q.p.lot))) rep)]
127− $d
128− ?+ hay (z-co q.p.lot)
129− $a
130− =+ yod=(yore q.p.lot)
131− => ^+(. .(rep ?~(f.t.yod rep ['.' (s-co f.t.yod)])))
132− => ^+ .
133− %= .
134− rep
135− ?: &(=(~ f.t.yod) =(0 h.t.yod) =(0 m.t.yod) =(0 s.t.yod))
136− rep
137− => .(rep ['.' (y-co s.t.yod)])
138− => .(rep ['.' (y-co m.t.yod)])
139− ['.' '.' (y-co h.t.yod)]
140− ==
141− => .(rep ['.' (a-co d.t.yod)])
142− => .(rep ['.' (a-co m.yod)])
143− => .(rep ?:(a.yod rep ['-' rep]))
144− ['~' (a-co y.yod)]
145− ::
146− $r
147− =+ yug=(yell q.p.lot)
148− => ^+(. .(rep ?~(f.yug rep ['.' (s-co f.yug)])))
149− :- '~'
150− ?: &(=(0 d.yug) =(0 m.yug) =(0 h.yug) =(0 s.yug))
151− ['s' '0' rep]
152− => ^+(. ?:(=(0 s.yug) . .(rep ['.' 's' (a-co s.yug)])))
153− => ^+(. ?:(=(0 m.yug) . .(rep ['.' 'm' (a-co m.yug)])))
154− => ^+(. ?:(=(0 h.yug) . .(rep ['.' 'h' (a-co h.yug)])))
155− => ^+(. ?:(=(0 d.yug) . .(rep ['.' 'd' (a-co d.yug)])))
156− +.rep
157− ==
158− ::
159− $f
160− ?: =(& q.p.lot)
161− ['.' 'y' rep]
162− ?:(=(| q.p.lot) ['.' 'n' rep] (z-co q.p.lot))
163− ::
164− $n ['~' rep]
165− $i
166− ?+ hay (z-co q.p.lot)
167− $f ((ro-co [3 10 4] |=(a/@ ~(d ne a))) q.p.lot)
168− $s ((ro-co [4 16 8] |=(a/@ ~(x ne a))) q.p.lot)
169− ==
170− ::
171− $p
172− =+ dyx=(met 3 q.p.lot)
173− :- '~'
174− ?: (lte dyx 1)
175− (weld (trip (tod:po q.p.lot)) rep)
176− ?: =(2 dyx)
177− ;: weld
178− (trip (tos:po (end 3 1 q.p.lot)))
179− (trip (tod:po (rsh 3 1 q.p.lot)))
180− rep
181− ==
182− =+ [dyz=(met 5 q.p.lot) fin=| dub=&]
183− |- ^- tape
184− ?: =(0 dyz)
185− rep
186− %= $
187− fin &
188− dub !dub
189− dyz (dec dyz)
190− q.p.lot (rsh 5 1 q.p.lot)
191− rep
192− =+ syb=(wren:un (end 5 1 q.p.lot))
193− =+ cog=~(zig mu [(rsh 4 1 syb) (end 4 1 syb)])
194− ;: weld
195− (trip (tos:po (end 3 1 p.cog)))
196− (trip (tod:po (rsh 3 1 p.cog)))
197− `tape`['-' ~]
198− (trip (tos:po (end 3 1 q.cog)))
199− (trip (tod:po (rsh 3 1 q.cog)))
200− `tape`?.(fin ~ ['-' ?.(dub ~ ['-' ~])])
201− rep
202− ==
203− ==
204− ::
205− $r
206− ?+ hay (z-co q.p.lot)
207− $d ['.' '~' (r-co (rlyd q.p.lot))]
208− $h ['.' '~' '~' (r-co (rlyh q.p.lot))]
209− $q ['.' '~' '~' '~' (r-co (rlyq q.p.lot))]
210− $s ['.' (r-co (rlys q.p.lot))]
211− ==
212− ::
213− $u
214− ?: ?=($c hay)
215− %+ welp ['0' 'c' (reap (pad:fa q.p.lot) '1')]
216− (c-co (enc:fa q.p.lot))
217− =- (weld p.gam ?:(=(0 q.p.lot) `tape`['0' ~] q.gam))
218− ^= gam ^- {p/tape q/tape}
219− ?+ hay [~ ((ox-co [10 3] |=(a/@ ~(d ne a))) q.p.lot)]
220− $b [['0' 'b' ~] ((ox-co [2 4] |=(a/@ ~(d ne a))) q.p.lot)]
221− $i [['0' 'i' ~] ((d-co 1) q.p.lot)]
222− $x [['0' 'x' ~] ((ox-co [16 4] |=(a/@ ~(x ne a))) q.p.lot)]
223− $v [['0' 'v' ~] ((ox-co [32 5] |=(a/@ ~(x ne a))) q.p.lot)]
224− $w [['0' 'w' ~] ((ox-co [64 5] |=(a/@ ~(w ne a))) q.p.lot)]
225− ==
226− ::
227− $s
228− %+ weld
229− ?:((syn:si q.p.lot) "--" "-")
230− $(yed 'u', q.p.lot (abs:si q.p.lot))
231− ::
232− $t
233− ?: =('a' hay)
234− ?: =('s' (cut 3 [2 1] p.p.lot))
235− (weld (rip 3 q.p.lot) rep)
236− ['~' '.' (weld (rip 3 q.p.lot) rep)]
237− ['~' '~' (weld (rip 3 (wood q.p.lot)) rep)]
238− ==
239− --
769+++ ox-co
770+ |= [[bas=@ gop=@] dug=$-(@ @)]
771+ %+ em-co
772+ [(pow bas gop) 0]
773+ |= [top=? seg=@ res=tape]
774+ %+ weld
775+ ?:(top ~ `tape`['.' ~])
776+ %. seg
777+ %+ em-co(rep res)
778+ [bas ?:(top 0 gop)]
779+ |=([? b=@ c=tape] [(dug b) c])
240780```
241781
242782#### Examples
243783
244784```
245− > ~(rend co %$ %ux 200)
246− "0xc8"
785+> ((ox-co:co [2 4] |=(a=@ ~(d ne a))) 0b1011.1101)
786+"1011.1101"
247787
248− > ~(rend co %many ~[[%$ ux+200] [%$ p+40]])
249− "._0xc8_~~tem__"
788+> ((ox-co:co [2 1] |=(a=@ ~(d ne a))) 0b1011.1101)
789+"1.0.1.1.1.1.0.1"
250790
251− > ~(rend co %$ %p 32.819)
252− "~pillyt"
791+> ((ox-co:co [2 100] |=(a=@ ~(d ne a))) 0b1011.1101)
792+"10111101"
793+```
253794
254− > ~(rend co %$ %ux 18)
255− "0x12"
795+---
796+
797+### `++ro-co:co`
256798
257− > ~(rend co [%$ p=[p=%if q=0x7f00.0001]])
258− ".127.0.0.1"
799+Format dot-prefixed bloqs in numeric base
259800
260− > `@ux`.127.0.0.1
261− 2.130.706.433
801+In base `bas`, for `buz` bloqs 0 to `dop`, format at least one digit of `hol`,
802+prefixed with `.`. This is used internally for `@i` address rendering functions.
262803
263− > ~(rend co %many ~[[%$ %ud 20] [%$ %uw 133] [%$ %tas 'sam']])
264− "._20_0w25_sam__"
804+#### Accepts
265805
266− > ~(rend co %blob [1 1])
267− "~0ph"
806+`[buz=@ bas=@ dop=@]` where `buz` is the bloq size, `bas` is the numeric base,
807+and `dop` is the number of bloqs.
268808
269− > ~0ph
270− [1 1]
809+`dug` is a `gate` of `$-(@ @)`.
271810
272− > `@uv`(jam [1 1])
273− 0vph
811+`hol` is an atom.
812+
813+#### Produces
814+
815+A `tape`.
816+
817+#### Source
818+
819+```hoon
820+++ ro-co
821+ |= [[buz=@ bas=@ dop=@] dug=$-(@ @)]
822+ |= hol=@
823+ ^- tape
824+ ?: =(0 dop)
825+ rep
826+ :- '.'
827+ =/ pod (dec dop)
828+ %. (cut buz [pod 1] hol)
829+ %+ em-co(rep $(dop pod))
830+ [bas 1]
831+ |=([? b=@ c=tape] [(dug b) c])
832+```
833+
834+#### Examples
835+
836+```
837+> ((ro-co:co [3 10 4] |=(a=@ ~(d ne a))) .127.0.0.1)
838+".127.0.0.1"
274839```
275840
276841---
content/docs/hoon/reference/stdlib/4l.md+424−412
@@ -8,470 +8,451 @@ template = "doc.html"
88
99Coin parser engine
1010
11−Core containing arms that parse `++coin`.
11+Core containing arms that parse atoms encoded in strings.
1212
13−#### Accepts
13+#### Source
1414
15−#### Produces
15+```hoon
16+++ so
17+ ~% %so + ~
18+ |%
19+```
20+
21+---
22+
23+### `++bisk:so`
24+
25+Parse aura-atom pair
26+
27+Parsing `rule`. Parses an `@u` of any permitted base,
28+producing a `dime`.
1629
1730#### Source
1831
1932```hoon
20− ++ so
21− |%
33+++ bisk
34+ ~+
35+ ;~ pose
36+ ;~ pfix (just '0')
37+ ;~ pose
38+ (stag %ub ;~(pfix (just 'b') bay:ag))
39+ (stag %uc ;~(pfix (just 'c') fim:ag))
40+ (stag %ui ;~(pfix (just 'i') dim:ag))
41+ (stag %ux ;~(pfix (just 'x') hex:ag))
42+ (stag %uv ;~(pfix (just 'v') viz:ag))
43+ (stag %uw ;~(pfix (just 'w') wiz:ag))
44+ ==
45+ ==
46+ (stag %ud dem:ag)
47+ ==
2248```
2349
2450#### Examples
2551
2652```
27− > so
28− <10.mkn 414.hhh 100.xkc 1.ypj %164>
53+> (scan "25" bisk:so)
54+[%ud 25]
55+
56+> (scan "0x12.6401" bisk:so)
57+[%ux 1.205.249]
2958```
3059
3160---
3261
33−### `++bisk:so`
34−
35−Parse aura-atom pair
36−
37−Parsing rule. Parses an unsigned integer of any permitted base,
38−producing a `++dime`.
62+### `++crub:so`
3963
40−#### Accepts
64+Parse `@da`, `@dr`, `@p`, `@t`
4165
42−#### Produces
66+Parsing `rule`. Parses any atom of any of the following auras after a leading
67+sig: `@da`, `@dr`, `@p`, and `@t`. Produces a `dime`.
4368
4469#### Source
4570
4671```hoon
47− ++ bisk
48− ;~ pose
49− ;~ pfix (just '0')
50− ;~ pose
51− (stag %ub ;~(pfix (just 'b') bay:ag))
52− (stag %ui ;~(pfix (just 'i') dim:ag))
53− (stag %ux ;~(pfix (just 'x') hex:ag))
54− (stag %uv ;~(pfix (just 'v') viz:ag))
55− (stag %uw ;~(pfix (just 'w') wiz:ag))
56− ==
57− ==
58− (stag %ud dem:ag)
59− ==
72+++ crub
73+ ~+
74+ ;~ pose
75+ (cook |=(det=date `dime`[%da (year det)]) when)
76+ ::
77+ %+ cook
78+ |= [a=(list [p=?(%d %h %m %s) q=@]) b=(list @)]
79+ =+ rop=`tarp`[0 0 0 0 b]
80+ |- ^- dime
81+ ?~ a
82+ [%dr (yule rop)]
83+ ?- p.i.a
84+ %d $(a t.a, d.rop (add q.i.a d.rop))
85+ %h $(a t.a, h.rop (add q.i.a h.rop))
86+ %m $(a t.a, m.rop (add q.i.a m.rop))
87+ %s $(a t.a, s.rop (add q.i.a s.rop))
88+ ==
89+ ;~ plug
90+ %+ most
91+ dot
92+ ;~ pose
93+ ;~(pfix (just 'd') (stag %d dim:ag))
94+ ;~(pfix (just 'h') (stag %h dim:ag))
95+ ;~(pfix (just 'm') (stag %m dim:ag))
96+ ;~(pfix (just 's') (stag %s dim:ag))
97+ ==
98+ ;~(pose ;~(pfix ;~(plug dot dot) (most dot qix:ab)) (easy ~))
99+ ==
100+ ::
101+ (stag %p fed:ag)
102+ ;~(pfix dot (stag %ta urs:ab))
103+ ;~(pfix sig (stag %t urx:ab))
104+ ;~(pfix hep (stag %c (cook taft urx:ab)))
105+ ==
60106```
61107
62108#### Examples
63109
64110```
65− > (scan "25" bisk:so)
66− [%ud q=25]
67− > (scan "0x12.6401" bisk:so)
68− [%ux q=1.205.249]
69−```
111+> (scan "1926.5.12" crub:so)
112+[p=~.da q=170.141.184.449.747.016.871.285.095.307.149.312.000]
70113
71−---
114+> ;;([%da @da] (scan "1926.5.12" crub:so))
115+[%da ~1926.5.12]
72116
73−### `++crub:so`
117+> (scan "s10" crub:so)
118+[p=~.dr q=184.467.440.737.095.516.160]
74119
75−Parse `@da`, `@dr`, `@p`, `@t`
120+> ;;([%dr @dr] (scan "s10" crub:so))
121+[%dr ~s10]
76122
77−Parsing rule. Parses any atom of any of the following auras after a
78−leading sig, `~` into a `++dime`: `@da`, `@dr`, `@p`,
79−and `@t`, producing a `++dime`.
123+> (scan "sampel" crub:so)
124+[%p 1.135]
80125
81−#### Accepts
126+> (scan ".mas" crub:so)
127+[%ta 7.561.581]
128+```
82129
83−#### Produces
130+---
131+
132+### `++nuck:so`
133+
134+Top-level coin parser
135+
136+Parsing `rule`. Switches on the first character and applies the
137+corresponding `coin` parser.
84138
85139#### Source
86140
87141```hoon
88− ++ crub
89− ~+
90− ;~ pose
91− %+ cook
92− |=(det/date `dime`[%da (year det)])
93− ;~ plug
94− %+ cook
95− |=({a/@ b/?} [b a])
96− ;~(plug dim:ag ;~(pose (cold | hep) (easy &)))
97− ;~(pfix dot dim:ag) :: month
98− ;~(pfix dot dim:ag) :: day
99− ;~ pose
100− ;~ pfix
101− ;~(plug dot dot)
102− ;~ plug
103− dum:ag
104− ;~(pfix dot dum:ag)
105− ;~(pfix dot dum:ag)
106− ;~(pose ;~(pfix ;~(plug dot dot) (most dot qix:ab)) (easy ~))
107− ==
108− ==
109− (easy [0 0 0 ~])
110− ==
111− ==
112− ::
113− %+ cook
114− |= {a/(list {p/?($d $h $m $s) q/@}) b/(list @)}
115− =+ rop=`tarp`[0 0 0 0 b]
116− |- ^- dime
117− ?~ a
118− [%dr (yule rop)]
119− ?- p.i.a
120− $d $(a t.a, d.rop (add q.i.a d.rop))
121− $h $(a t.a, h.rop (add q.i.a h.rop))
122− $m $(a t.a, m.rop (add q.i.a m.rop))
123− $s $(a t.a, s.rop (add q.i.a s.rop))
124− ==
125− ;~ plug
126− %+ most
127− dot
128− ;~ pose
129− ;~(pfix (just 'd') (stag %d dim:ag))
130− ;~(pfix (just 'h') (stag %h dim:ag))
131− ;~(pfix (just 'm') (stag %m dim:ag))
132− ;~(pfix (just 's') (stag %s dim:ag))
133− ==
134− ;~(pose ;~(pfix ;~(plug dot dot) (most dot qix:ab)) (easy ~))
135− ==
136− ::
137− (stag %p fed:ag)
138− ;~(pfix dot (stag %ta urs:ab))
139− ;~(pfix sig (stag %t urx:ab))
140− ;~(pfix hep (stag %c (cook turf urx:ab)))
141− ==
142− ++ nuck
143− ~/ %nuck |= a/nail %. a
144− %+ knee *coin |. ~+
145− %- stew
146− ^. stet ^. limo
147− :~ :- ['a' 'z'] (cook |=(a/@ta [%$ %tas a]) sym)
148− :- ['0' '9'] (stag %$ bisk)
149− :- '-' (stag %$ tash)
150− :- '.' ;~(pfix dot perd)
151− :- '~' ;~(pfix sig ;~(pose twid (easy [%$ %n 0])))
152− ==
153− ++ nusk
154− ~+
155− :(sear |=(a/@ta (rush a nuck)) wick urt:ab)
156− ++ perd
157− ~+
158− ;~ pose
159− (stag %$ zust)
160− (stag %many (ifix [cab ;~(plug cab cab)] (more cab nusk)))
161− ==
162− ++ royl
163− ~+
164− =+ ^= moo
165− |= a/tape
166− :- (lent a)
167− (scan a (bass 10 (plus sid:ab)))
168− =+ ^= voy
169− %+ cook royl-cell
170− ;~ pose
171− ;~ plug
172− (easy %d)
173− ;~ pose (cold | hep) (easy &) ==
174− ;~ plug dim:ag
175− ;~ pose
176− ;~(pfix dot (cook moo (plus (shim '0' '9'))))
177− (easy [0 0])
178− ==
179− ;~ pose
180− ;~ pfix
181− (just 'e')
182− ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag)
183− ==
184− (easy [& 0])
185− ==
186− ==
187− ==
188− ;~ plug
189− (easy %i)
190− ;~ sfix
191− ;~ pose (cold | hep) (easy &) ==
192− (jest 'inf')
193− ==
194− ==
195− ;~ plug
196− (easy %n)
197− (cold ~ (jest 'nan'))
198− ==
199− ==
200− ;~ pose
201− (stag %rh (cook rylh ;~(pfix ;~(plug sig sig) voy)))
202− (stag %rq (cook rylq ;~(pfix ;~(plug sig sig sig) voy)))
203− (stag %rd (cook ryld ;~(pfix sig voy)))
204− (stag %rs (cook ryls voy))
205− ==
206− ::
207− ++ royl-cell
208− |= rn
209− ^- dn
210− ?. ?=({$d *} +<) +<
211− =+ ^= h
212− (dif:si (new:si f.b i.b) (sun:si d.b))
213− [%d a h (add (mul c.b (pow 10 d.b)) e.b)]
214− ::
215− ++ tash
216− ~+
217− =+ ^= neg
218− |= {syn/? mol/dime} ^- dime
219− ?> =('u' (end 3 1 p.mol))
220− [(cat 3 's' (rsh 3 1 p.mol)) (new:si syn q.mol)]
221− ;~ pfix hep
222− ;~ pose
223− (cook |=(a/dime (neg | a)) bisk)
224− ;~(pfix hep (cook |=(a/dime (neg & a)) bisk))
225− ==
226− ==
227− ::
228− ++ twid
229− ~+
230− ;~ pose
231− (cook |=(a/@ [%blob (cue a)]) ;~(pfix (just '0') vum:ag))
232− (stag %$ crub)
233− ==
234− ::
235− ++ zust
236− ~+
237− ;~ pose
238− (stag %is bip:ag)
239− (stag %if lip:ag)
240− (stag %f ;~(pose (cold & (just 'y')) (cold | (just 'n'))))
241− royl
242− ==
243− --
142+++ nuck
143+ ~/ %nuck |= a=nail %. a
144+ %+ knee *coin |. ~+
145+ %- stew
146+ ^. stet ^. limo
147+ :~ :- ['a' 'z'] (cook |=(a=@ta [%$ %tas a]) sym)
148+ :- ['0' '9'] (stag %$ bisk)
149+ :- '-' (stag %$ tash)
150+ :- '.' ;~(pfix dot perd)
151+ :- '~' ;~(pfix sig ;~(pose twid (easy [%$ %n 0])))
152+ ==
244153```
245154
246155#### Examples
247156
248157```
249− > (scan "1926.5.12" crub:so)
250− [p=~.da q=170.141.184.449.747.016.871.285.095.307.149.312.000]
251− > ([%da @da] (scan "1926.5.12" crub:so))
252− [%da ~1926.5.12]
253− > (scan "s10" crub:so)
254− [p=~.dr q=184.467.440.737.095.516.160]
255− > ([%dr @dr] (scan "s10" crub:so))
256− [%dr ~s10]
257− > (scan "doznec" crub:so)
258− [%p 256]
259− > (scan ".mas" crub:so)
260− [%ta 7.561.581]
158+> (scan "~pillyt" nuck:so)
159+[%$ p=[p=~.p q=13.184]]
160+
161+> (scan "0x12" nuck:so)
162+[%$ p=[p=~.ux q=18]]
163+
164+> (scan ".127.0.0.1" nuck:so)
165+[%$ p=[p=~.if q=2.130.706.433]]
166+
167+> (scan "._20_0w25_sam__" nuck:so)
168+[ %many
169+ p
170+ ~[
171+ [%$ p=[p=~.ud q=20]]
172+ [%$ p=[p=~.uw q=133]]
173+ [%$ p=[p=~.tas q=7.168.371]]
174+ ]
175+]
261176```
262177
263178---
264179
265−### `++nuck:so`
180+### `++nusk:so`
266181
267−Top-level coin parser
182+Parse coin literal with escapes
268183
269−Parsing rule. Switches on the first character and applies the
270−corresponding `++coin` parser.
184+Parsing `rule`. Parses a coin literal with escapes.
271185
272−#### Accepts
186+#### Source
273187
274−#### Produces
188+```hoon
189+++ nusk
190+ ~+
191+ :(sear |=(a=@ta (rush a nuck)) wick urt:ab)
192+```
193+
194+#### Examples
195+
196+```
197+> ~.asd_a
198+~.asd_a
199+
200+> ._1_~~.asd~-a__
201+[1 ~.asd_a]
202+
203+> (scan "~~.asd~-a" nusk:so)
204+[%$ p=[p=~.ta q=418.212.246.369]]
205+```
206+
207+---
208+
209+### `++perd:so`
210+
211+Parsing coin literal without prefixes
212+
213+Parsing `rule`. Parses a dime or tuple without their respective standard
214+prefixes.
275215
276216#### Source
277217
278218```hoon
279− ++ nuck
280− ~/ %nuck |= a/nail %. a
281− %+ knee *coin |. ~+
282− %- stew
283− ^. stet ^. limo
284− :~ :- ['a' 'z'] (cook |=(a/@ta [%$ %tas a]) sym)
285− :- ['0' '9'] (stag %$ bisk)
286− :- '-' (stag %$ tash)
287− :- '.' ;~(pfix dot perd)
288− :- '~' ;~(pfix sig ;~(pose twid (easy [%$ %n 0])))
289− ==
219+++ perd
220+ ~+
221+ ;~ pose
222+ (stag %$ zust)
223+ (stag %many (ifix [cab ;~(plug cab cab)] (more cab nusk)))
224+ ==
290225```
291226
292227#### Examples
293228
294229```
295− > (scan "~pillyt" nuck:so)
296− [% p=[p=~.p q=32.819]]
297− > (scan "0x12" nuck:so)
298− [% p=[p=~.ux q=18]]
299− > (scan ".127.0.0.1" nuck:so)
300− [% p=[p=~.if q=2.130.706.433]]
301− > `@ud`.127.0.0.1
302− 2.130.706.433
303− > (scan "._20_0w25_sam__" nuck:so)
304− [ %many
305− p
306− ~[[% p=[p=~.ud q=20]] [% p=[p=~.uw q=133]] [% p=[p=~.tas q=7.168.371]]]
307− ]
308− > `@`%sam
309− 7.168.371
310− > (scan "~0ph" nuck:so)
311− [%blob p=[1 1]]
312− > ~0ph
313− [1 1]
314− > `@uv`(jam [1 1])
315− 0vph
230+> (scan "y" perd:so)
231+[%$ [%f %.y]]
232+
233+> (scan "n" perd:so)
234+[%$ [%f %.n]]
235+
236+> (scan "_20_x__" perd:so)
237+[%many [[%$ p=[p=~.ud q=20]] [i=[%$ p=[p=~.tas q=120]] t=~]]]
316238```
317239
318240---
319241
320−### `++nusk:so`
242+### `++royl:so`
321243
322−Parse coin literal with escapes
244+Parse dime float
323245
324−Parsing rule. Parses a coin literal with escapes. (See also: xx tuple
325−formatting).
246+Parsing `rule`. Parses a number into a `dime` float.
326247
327−#### Accepts
248+#### Source
328249
329−#### Produces
250+```hoon
251+++ royl
252+ ~+
253+ ;~ pose
254+ (stag %rh royl-rh)
255+ (stag %rq royl-rq)
256+ (stag %rd royl-rd)
257+ (stag %rs royl-rs)
258+ ==
259+```
260+
261+#### Examples
262+
263+```
264+> (scan "~3.14" royl:so)
265+[%rd .~3.14]
266+
267+> (scan "3.14" royl:so)
268+[%rs .3.14]
269+```
270+
271+---
272+
273+### `++royl-rh:so`
274+
275+Parse half-precision float
276+
277+Parsing `rule`. Parses a `@rh`.
330278
331279#### Source
332280
333281```hoon
334− ++ nusk
335− (sear |=(a/@ta (rush (wick a) nuck)) urt:ab)
282+++ royl-rh (cook rylh ;~(pfix ;~(plug sig sig) (cook royl-cell royl-rn)))
336283```
337284
338285#### Examples
339286
340287```
341− > ~.asd_a
342− ~.asd_a
343− > ._1_~~.asd~-a__
344− [1 ~.asd_a]
345− > (scan "~~.asd~-a" nusk:so)
346− [% p=[p=~.ta q=418.212.246.369]]
347− > ([~ %ta @ta] (scan "~~.asd~-a" nusk:so))
348− [~ %ta ~.asd_a]
288+> (scan "~~3.14" royl-rh:so)
289+.~~3.14
349290```
350291
351292---
352293
353−### `++perd:so`
294+### `++royl-rq:so`
354295
355−Parsing rule.
296+Parse quad-precision float
356297
357−Parsing rule. Parses a dime or tuple without their respective standard
358−prefixes.
298+Parsing `rule`. Parses a `@rq`.
359299
360−#### Accepts
300+#### Source
361301
362−#### Produces
302+```hoon
303+++ royl-rq (cook rylq ;~(pfix ;~(plug sig sig sig) (cook royl-cell royl-rn)))
304+```
305+
306+#### Examples
307+
308+```
309+> (scan "~~~3.14" royl-rq:so)
310+.~~~3.14
311+```
312+
313+---
314+
315+### `++royl-rd:so`
316+
317+Parse double-precision float
318+
319+Parsing `rule`. Parses a `@rd`.
363320
364321#### Source
365322
366323```hoon
367− ++ perd
368− ;~ pose
369− (stag ~ zust)
370− (stag %many (ifix [cab ;~(plug cab cab)] (more cab nusk)))
371− ==
324+++ royl-rd (cook ryld ;~(pfix sig (cook royl-cell royl-rn)))
372325```
373326
374327#### Examples
375328
376329```
377− > (scan "y" perd:so)
378− [~ [%f %.y]]
379− > (scan "n" perd:so)
380− [~ [%f %.n]]
381− > |
382− %.n
383− > (scan "_20_x__" perd:so)
384− [%many [[% p=[p=~.ud q=20]] ~[[% p=[p=~.tas q=120]]]]]
330+> (scan "~3.14" royl-rd:so)
331+.~3.14
385332```
386333
387334---
388335
389−### `++royl:so`
336+### `++royl-rs:so`
390337
391−Parse dime float
338+Parse single-precision float
392339
393−Parsing rule. Parses a number into a `++dime` float.
340+Parsing `rule`. Parses a `@rs`.
394341
395−#### Accepts
342+#### Source
396343
397−#### Produces
344+```hoon
345+++ royl-rs (cook ryls (cook royl-cell royl-rn))
346+```
347+
348+#### Examples
349+
350+```
351+> (scan "3.14" royl-rs:so)
352+.3.14
353+```
354+
355+---
356+
357+### `++royl-rn:so`
358+
359+Parse real number
360+
361+Parsing `rule`. Parses a real number to a [`++rn`](/docs/hoon/reference/stdlib/3b#rn).
398362
399363#### Source
400364
401365```hoon
402− ++ royl
403− ~+
404− =+ ^= moo
405− |= a/tape
406− :- (lent a)
407− (scan a (bass 10 (plus sid:ab)))
408− =+ ^= voy
409− %+ cook royl-cell
410− ;~ pose
411− ;~ plug
412− (easy %d)
413− ;~ pose (cold | hep) (easy &) ==
414− ;~ plug dim:ag
415− ;~ pose
416− ;~(pfix dot (cook moo (plus (shim '0' '9'))))
417− (easy [0 0])
418− ==
419− ;~ pose
420− ;~ pfix
421− (just 'e')
422− ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag)
423− ==
424− (easy [& 0])
425− ==
426− ==
366+++ royl-rn
367+ =/ moo
368+ |= a=tape
369+ :- (lent a)
370+ (scan a (bass 10 (plus sid:ab)))
371+ ;~ pose
372+ ;~ plug
373+ (easy %d)
374+ ;~(pose (cold | hep) (easy &))
375+ ;~ plug dim:ag
376+ ;~ pose
377+ ;~(pfix dot (cook moo (plus (shim '0' '9'))))
378+ (easy [0 0])
427379 ==
428− ;~ plug
429− (easy %i)
430− ;~ sfix
431− ;~ pose (cold | hep) (easy &) ==
432− (jest 'inf')
380+ ;~ pose
381+ ;~ pfix
382+ (just 'e')
383+ ;~(plug ;~(pose (cold | hep) (easy &)) dim:ag)
433384 ==
434− ==
435− ;~ plug
436− (easy %n)
437− (cold ~ (jest 'nan'))
385+ (easy [& 0])
438386 ==
439387 ==
440− ;~ pose
441− (stag %rh (cook rylh ;~(pfix ;~(plug sig sig) voy)))
442− (stag %rq (cook rylq ;~(pfix ;~(plug sig sig sig) voy)))
443− (stag %rd (cook ryld ;~(pfix sig voy)))
444− (stag %rs (cook ryls voy))
445388 ==
446− ::
389+ ::
390+ ;~ plug
391+ (easy %i)
392+ ;~ sfix
393+ ;~(pose (cold | hep) (easy &))
394+ (jest 'inf')
395+ ==
396+ ==
397+ ::
398+ ;~ plug
399+ (easy %n)
400+ (cold ~ (jest 'nan'))
401+ ==
402+ ==
447403```
448404
449405#### Examples
450406
451407```
452− > (scan "~3.14" royl:so)
453− [%rd .~3.13999999999999]
454− > .~3.14
455− .~3.13999999999999
408+> (scan "3.14" royl-rn:so)
409+[%d %.y 3 [2 14] [%.y 0]]
410+
411+> (scan "-3.14e-39" royl-rn:so)
412+[%d %.n 3 [2 14] [%.n 39]]
413+
414+> (scan "3" royl-rn:so)
415+[%d %.y 3 [0 0] [%.y 0]]
456416```
457417
458418---
459419
460420### `++royl-cell:so`
461421
462−XX still not fully functional
422+Convert rn to dn
423+
424+Intermediate parsed float converter. Convert a
425+[`++rn`](/docs/hoon/reference/stdlib/3b#rn) to
426+[`++dn`](/docs/hoon/reference/stdlib/3b#dn).
463427
464−Intermediate parsed float convereter
428+#### Accepts
429+
430+A `++rn`.
431+
432+#### Produces
433+
434+A `++dn`.
435+
436+#### Source
465437
466438```hoon
467− ++ royl-cell
468− |= rn
469− ^- dn
470− ?. ?=({$d *} +<) +<
471− =+ ^= h
472− (dif:si (new:si f.b i.b) (sun:si d.b))
473− [%d a h (add (mul c.b (pow 10 d.b)) e.b)]
474− ::
439+++ royl-cell
440+ |= rn
441+ ^- dn
442+ ?. ?=([%d *] +<) +<
443+ =+ ^= h
444+ (dif:si (new:si f.b i.b) (sun:si d.b))
445+ [%d a h (add (mul c.b (pow 10 d.b)) e.b)]
446+```
447+
448+#### Examples
449+
450+```
451+> (royl-cell:so (scan "3.14" royl-rn:so))
452+[%d s=%.y e=-2 a=314]
453+
454+> (ryls (royl-cell:so (scan "3.14" royl-rn:so)))
455+.3.14
475456```
476457
477458---
@@ -480,41 +461,39 @@ Intermediate parsed float convereter
480461
481462Parse signed dime
482463
483−#### Accepts
484−
485−#### Produces
486−
487−Parsing rule. Parses a signed number into a `++dime`.
464+Parsing `rule`. Parse a `@s` to a `dime`.
488465
489466#### Source
490467
491468```hoon
492− ++ tash
493− ~+
494− =+ ^= neg
495− |= {syn/? mol/dime} ^- dime
496− ?> =('u' (end 3 1 p.mol))
497− [(cat 3 's' (rsh 3 1 p.mol)) (new:si syn q.mol)]
498− ;~ pfix hep
499− ;~ pose
500− (cook |=(a/dime (neg | a)) bisk)
501− ;~(pfix hep (cook |=(a/dime (neg & a)) bisk))
502− ==
503− ==
504− ::
469+++ tash
470+ ~+
471+ =+ ^= neg
472+ |= [syn=? mol=dime] ^- dime
473+ ?> =('u' (end 3 p.mol))
474+ [(cat 3 's' (rsh 3 p.mol)) (new:si syn q.mol)]
475+ ;~ pfix hep
476+ ;~ pose
477+ (cook |=(a=dime (neg | a)) bisk)
478+ ;~(pfix hep (cook |=(a=dime (neg & a)) bisk))
479+ ==
480+ ==
505481```
506482
507483#### Examples
508484
509485```
510− > (scan "-20" tash:so)
511− [p=~.sd q=39]
512− > (,[%sd @sd] (scan "-20" tash:so))
513− [%sd -20]
514− > (,[%sd @sd] (scan "--20" tash:so))
515− [%sd --20]
516− > (,[%sx @sx] (scan "--0x2e" tash:so))
517− [%sx --0x2e]
486+> (scan "-20" tash:so)
487+[p=~.sd q=39]
488+
489+> ;;([%sd @sd] (scan "-20" tash:so))
490+[%sd -20]
491+
492+> ;;([%sd @sd] (scan "--20" tash:so))
493+[%sd --20]
494+
495+> ;;([%sx @sx] (scan "--0x2e" tash:so))
496+[%sx --0x2e]
518497```
519498
520499---
@@ -525,82 +504,115 @@ Parse coins without `~` prefix
525504
526505Parsing rule. Parses coins after a leading sig, `~`.
527506
528−#### Accepts
507+#### Source
529508
530−#### Produces
509+```hoon
510+++ twid
511+ ~+
512+ ;~ pose
513+ %+ stag %blob
514+ %+ sear |=(a=@ (mole |.((cue a))))
515+ ;~(pfix (just '0') vum:ag)
516+ ::
517+ (stag %$ crub)
518+ ==
519+```
520+
521+#### Examples
522+
523+```
524+> (scan "zod" twid:so)
525+[%$ [%p 0]]
526+
527+> (scan ".sam" twid:so)
528+[%$ [%ta 7.168.371]]
529+
530+> (scan "0ph" twid:so)
531+[%blob [1 1]]
532+```
533+
534+---
535+
536+### `++when:so`
537+
538+Parse date
539+
540+Parsing `rule`. Parse a `@da`-formatted date string (sans the leading `~`) to a
541+`date`.
531542
532543#### Source
533544
534545```hoon
535− ++ twid
536− ;~ pose
537− (cook |=(a/@ [%blob (cue a)]) ;~(pfix (just '0') vum:ag))
538− (stag ~ crub)
546+++ when
547+ ~+
548+ ;~ plug
549+ %+ cook
550+ |=([a=@ b=?] [b a])
551+ ;~(plug dim:ag ;~(pose (cold | hep) (easy &)))
552+ ;~(pfix dot mot:ag) :: month
553+ ;~(pfix dot dip:ag) :: day
554+ ;~ pose
555+ ;~ pfix
556+ ;~(plug dot dot)
557+ ;~ plug
558+ dum:ag
559+ ;~(pfix dot dum:ag)
560+ ;~(pfix dot dum:ag)
561+ ;~(pose ;~(pfix ;~(plug dot dot) (most dot qix:ab)) (easy ~))
539562 ==
540− ::
563+ ==
564+ (easy [0 0 0 ~])
565+ ==
566+ ==
541567```
542568
543569#### Examples
544570
545571```
546− > (scan "zod" twid:so)
547− [~ [%p 0]]
548− > (scan ".sam" twid:so)
549− [~ [%ta 7.168.371]]
550− > `@ud`~.sam
551− 7.168.371
552− > `@t`~.sam
553− 'sam'
554− > (scan "0ph" twid:so)
555− [%blob [1 1]]
572+> `date`(scan "2000.1.1..12.00.00..ffff" when:so)
573+[[a=%.y y=2.000] m=1 t=[d=1 h=12 m=0 s=0 f=~[0xffff]]]
556574```
557575
558576---
559577
560578### `++zust:so`
561579
562−Parse prefixed dimes from `@if`, `@f`, `@rd`
580+Parse dimes from `@i`, `@f`, `@r` or `@q`
563581
564−Parsing rule. Parses an atom of either `@if` (IP address), `@f`
565−(loobean), or `rf`(floating point) into a `++dime`.
566−
567−#### Accepts
568−
569−#### Produces
582+Parsing rule. Parses an atom of either `@if` (IP address), `@f` (loobean), `@r`
583+(floating point) into a `dime`. The `@q` alone requires a leading `~`.
570584
571585#### Source
572586
573587```hoon
574− ++ zust
575− ;~ pose
576− (stag %is bip:ag)
577− (stag %if lip:ag)
578− (stag %f ;~(pose (cold & (just 'y')) (cold | (just 'n'))))
579− royl
580− ==
581− --
588+++ zust
589+ ~+
590+ ;~ pose
591+ (stag %is bip:ag)
592+ (stag %if lip:ag)
593+ royl
594+ (stag %f ;~(pose (cold & (just 'y')) (cold | (just 'n'))))
595+ (stag %q ;~(pfix sig feq:ag))
596+ ==
582597```
583598
584599#### Examples
585600
586601```
587− > (scan "127.0.0.1" zust:so)
588− [%if q=2.130.706.433]
589−
590− > (scan "af.0.0.0.0.e7a5.30d2.7" zust:so)
591− [%is q=908.651.950.243.594.834.993.091.554.288.205.831]
602+> (scan "~sampel" zust:so)
603+[%q 1.135]
592604
593− > (,[%is @is] (scan "af.0.0.0.0.e7a5.30d2.7" zust:so))
594− [%is .af.0.0.0.0.e7a5.30d2.7]
605+> (scan "y" zust:so)
606+[%f %.y]
595607
596− > (,[%is @ux] (scan "af.0.0.0.0.e7a5.30d2.7" zust:so))
597− [%is 0xaf.0000.0000.0000.0000.e7a5.30d2.0007]
608+> (scan "127.0.0.1" zust:so)
609+[%if 2.130.706.433]
598610
599− > (scan "y" zust:so)
600− [%f %.y]
611+> (scan "af.0.0.0.0.e7a5.30d2.7" zust:so)
612+[%is 908.651.950.243.594.834.993.091.554.288.205.831]
601613
602− > (scan "12.09" zust:so)
603− [%rd .~12.00999999999999]
614+> (scan "12.09" zust:so)
615+[%rs .12.09]
604616```
605617
606618---
content/docs/hoon/reference/stdlib/table-of-contents.md+48−8
@@ -18,6 +18,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1818<a class="tooltip" href='/docs/hoon/reference/stdlib/3a/#abssi' title="Absolute value (signed integer)"><code>++abs:si</code></a>
1919<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#abel' title="Compiler alias"><code>++abel</code></a>
2020<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#ace' title="Parse space"><code>++ace</code></a>
21+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#a-coco' title="Render decimal"><code>++a-co:co</code></a>
2122<a class="tooltip" href='/docs/hoon/reference/stdlib/1a/#add' title="Add"><code>++add</code></a>
2223<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#addff' title="Add (floating point)"><code>++add:ff</code></a>
2324<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#addfl' title="Add (with exact/rounded flag)"><code>++add:fl</code></a>
@@ -90,6 +91,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
9091<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#cap' title="Tree head"><code>++cap</code></a>
9192<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#cass' title="To lowercase"><code>++cass</code></a>
9293<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#cat' title="Concatenate"><code>++cat</code></a>
94+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#c-coco' title="Render base58check"><code>++c-co:co</code></a>
9395<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#cen' title="Parse % (cen)"><code>++cen</code></a>
9496<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#cetyo' title="Days in a century"><code>++cet:yo</code></a>
9597<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#chafa' title="Decode base58check character"><code>++cha:fa</code></a>
@@ -124,6 +126,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
124126<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#dne' title="Render decimal"><code>++d:ne</code></a>
125127<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#date' title="Parsed date"><code>+$date</code></a>
126128<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#dayyo' title="Seconds in day"><code>++day:yo</code></a>
129+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#d-coco' title="Render decimal with min length"><code>++d-co:co</code></a>
127130<a class="tooltip" href='/docs/hoon/reference/stdlib/1a/#dec' title="Decrement"><code>++dec</code></a>
128131<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#delby' title="Delete (map)"><code>++del:by</code></a>
129132<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#delin' title="Delete (set)"><code>++del:in</code></a>
@@ -175,9 +178,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
175178<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#eadfl' title="Exact add"><code>++ead:fl</code></a>
176179<a class="tooltip" href='/docs/hoon/reference/stdlib/1c/#each' title="Mold of fork between two types"><code>++each</code></a>
177180<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#easy' title="Always parse"><code>++easy</code></a>
181+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#ed-coco' title="Format with decimal place"><code>++ed-co:co</code></a>
178182<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#edge' title="Parsing location metadata"><code>+$edge</code></a>
179183<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#effob' title="murmur3-based pseudorandom function"><code>++eff:ob</code></a>
180184<a class="tooltip" href='/docs/hoon/reference/stdlib/3a/#egcd' title="Extended Euclidean algorithm"><code>++egcd</code></a>
185+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#em-coco' title="Render in numeric base"><code>++em-co:co</code></a>
181186<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emnfl' title="Minimum exponent"><code>++emn:fl</code></a>
182187<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emufl' title="Exact multiply"><code>++emu:fl</code></a>
183188<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emxfl' title="Maximum exponent"><code>++emx:fl</code></a>
@@ -465,6 +470,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
465470<a class="tooltip" href='/docs/hoon/reference/stdlib/3a/#oldsi' title="Sign and absolute value"><code>++old:si</code></a>
466471<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#oust' title="Remove from list"><code>++oust</code></a>
467472<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#outfe' title="Maximum integer value"><code>++out:fe</code></a>
473+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#ox-coco' title="Format dot-separated digits in numeric base"><code>++ox-co:co</code></a>
468474
469475### p
470476
@@ -477,7 +483,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
477483<a class="tooltip" href='/docs/hoon/reference/stdlib/1b/#peg' title="Address within address"><code>++peg</code></a>
478484<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pal' title="Parse ( (pal)"><code>++pal</code></a>
479485<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#par' title="Parse ) (par)"><code>++par</code></a>
480−<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#perdso' title="Parses dime/tiple without standard prefixes"><code>++perd:so</code></a>
486+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#perdso' title="Parsing coin literal without prefixes"><code>++perd:so</code></a>
481487<a class="tooltip" href='/docs/hoon/reference/stdlib/4f/#perk' title="Parse cube fork"><code>++perk</code></a>
482488<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pevab' title="Parse 1-5 @uv base-32 chars"><code>++pev:ab</code></a>
483489<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#pewab' title="Parse <= 5 in base 64"><code>++pew:ab</code></a>
@@ -527,6 +533,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
527533<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#raufl' title="Various roundings (floating point)"><code>++rau:fl</code></a>
528534<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#rawog' title="Random bits"><code>++raw:og</code></a>
529535<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#rawsog' title="Random bits continuation"><code>++raws:og</code></a>
536+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#r-coco' title="Render floating point"><code>++r-co:co</code></a>
530537<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#re' title="Prettyprinting engine (tank)"><code>++re</code></a>
531538<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#rear' title="Last item in list"><code>++rear</code></a>
532539<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rearco' title="Prepend and render atom as tape"><code>++rear:co</code></a>
@@ -534,7 +541,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
534541<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#reel' title="Right fold (list)"><code>++reel</code></a>
535542<a class="tooltip" href='/docs/hoon/reference/stdlib/3a/#remsi' title="Remainder (signed integer)"><code>++rem:si</code></a>
536543<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rendco' title="Render coin lot as tape"><code>++rend:co</code></a>
537−<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rentco' title="Render coin lot as span"><code>++rent:co</code></a>
544+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rentco' title="Render coin as knot"><code>++rent:co</code></a>
538545<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rep' title="Assemble single"><code>++rep</code></a>
539546<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#repby' title="Reduce to product (map)"><code>++rep:by</code></a>
540547<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#repin' title="Accumulate elements (set)"><code>++rep:in</code></a>
@@ -543,6 +550,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
543550<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#ribby' title="Transform + product (map)"><code>++rib:by</code></a>
544551<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rip' title="Disassemble"><code>++rip</code></a>
545552<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="Print null"><code>++rn:at</code></a>
553+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#ro-coco' title="Format dot-prefixed bloqs in numeric base"><code>++ro-co:co</code></a>
546554<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rolfe' title="Roll left"><code>++rol:fe</code></a>
547555<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#roll' title="Left fold (list)"><code>++roll</code></a>
548556<code>++rood</code>
@@ -550,7 +558,12 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
550558<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rose' title="Parse to each"><code>++rose</code></a>
551559<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#roufl' title="Round to nearest float with 113bit significand"><code>++rou:fl</code></a>
552560<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
553−<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
561+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-cellso' title="Convert rn to dn"><code>++royl-cell:so</code></a>
562+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rhso' title="Parse half-precision float"><code>++royl-rh:so</code></a>
563+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rqso' title="Parse quad-precision float"><code>++royl-rq:so</code></a>
564+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rdso' title="Parse double-precision float"><code>++royl-rd:so</code></a>
565+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rsso' title="Parse single-precision float"><code>++royl-rs:so</code></a>
566+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rnso' title="Parse real number"><code>++royl-rn:so</code></a>
554567<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rsh' title="Rightshift"><code>++rsh</code></a>
555568<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="Print cord, including escape characters"><code>++rt:at</code></a>
556569<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="Print cord, including escape characters"><code>++rta:at</code></a>
@@ -584,6 +597,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
584597<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#sbff' title="Sign bit"><code>++sb:ff</code></a>
585598<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#scag' title="Prefix (produce front of list)"><code>++scag</code></a>
586599<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#scan' title="Parse tape or crash"><code>++scan</code></a>
600+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#s-coco' title="Render hex list"><code>++s-co:co</code></a>
587601<a class="tooltip" href='/docs/hoon/reference/stdlib/4m/#scot' title="Render dime as cord"><code>++scot</code></a>
588602<a class="tooltip" href='/docs/hoon/reference/stdlib/4m/#scow' title="Render dime as tape"><code>++scow</code></a>
589603<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#seaff' title="Convert from IEEE float to fn"><code>++sea:ff</code></a>
@@ -783,6 +797,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
783797<code>++vang</code>
784798<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#vase' title="Typed data"><code>++vase</code></a>
785799<code>++vast</code>
800+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#v-coco' title="Render base-32 with minimum length"><code>++v-co:co</code></a>
786801<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#ven' title="Axis syntax parser"><code>++ven</code></a>
787802<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#vise' title="Convert during reboot"><code>++vise</code></a>
788803<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#vit' title="Parse base 64 digit"><code>++vit</code></a>
@@ -798,9 +813,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
798813<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wain' title="List of cords"><code>+$wain</code></a>
799814<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wall' title="List of list of characters"><code>+$wall</code></a>
800815<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#wash' title="Render tank at width"><code>++wash</code></a>
816+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#w-coco' title="Render base-64 with minimum length"><code>++w-co:co</code></a>
801817<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#weld' title="Concatenate two lists"><code>++weld</code></a>
802818<a class="tooltip" href='/docs/hoon/reference/stdlib/2m/#weldnl' title="Concatenate nullterminated nouns"><code>++weld:nl</code></a>
803819<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#welp' title="Perfect concatenate (lists)"><code>++welp</code></a>
820+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#whenso' title="Parse date"><code>++when:so</code></a>
804821<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Knot unescape"><code>++wick</code></a>
805822<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#winre' title="Render at indent"><code>++win:re</code></a>
806823<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#wing' title="Address in subject"><code>++wing</code></a>
@@ -816,6 +833,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
816833
817834### x
818835
836+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#x-coco' title="Render hex with minimum length"><code>++x-co:co</code></a>
819837<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#xne' title="Render hexadecimal digit as atom of ASCII byte value"><code>++x:ne</code></a>
820838<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#xeb' title="Binary logarithm"><code>++xeb</code></a>
821839<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#xpdfl' title="Expand signed and unsigned integer cell"><code>++xpd:fl</code></a>
@@ -824,6 +842,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
824842
825843<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#yall' title="Time since beginning of time"><code>++yall</code></a>
826844<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#yawn' title="Days since beginning of time"><code>++yawn</code></a>
845+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#y-coco' title="Render decimal with at least two digits"><code>++y-co:co</code></a>
827846<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#year' title="Date to @d"><code>++year</code></a>
828847<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#yell' title="Tarp from atomic date"><code>++yell</code></a>
829848<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#yelp' title="Determine if leapweek"><code>++yelp</code></a>
@@ -838,11 +857,12 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
838857<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#zagmu' title="Add bottom into top"><code>++zag:mu</code></a>
839858<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#zap' title="Parse ! (zap)"><code>++zap</code></a>
840859<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#zartun' title="Reverse look up in 255 sub box"><code>++zart:un</code></a>
860+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#z-coco' title="Render '0x'-prefixed hex"><code>++z-co:co</code></a>
841861<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#zerfl' title="Produce zero as float"><code>++zer:fl</code></a>
842862<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#zigmu' title="Subtract bottom from top"><code>++zig:mu</code></a>
843863<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#zing' title="Turn lists into single list by promoting elements from sublists"><code>++zing</code></a>
844864<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#zugmu' title="Concatenate into atom"><code>++zug:mu</code></a>
845−<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#zustso' title="Parse prefixed dimes from IP, loobean, or floating point"><code>++zust:so</code></a>
865+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#zustso' title="Parse dimes from @i, @f, @r or @q"><code>++zust:so</code></a>
846866<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#zyftun' title="Lookup byte in 256 sub box"><code>++zyft:un</code></a>
847867<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#zyrtun' title="Reverse lookup byte in 256 sub box"><code>++zyrt:un</code></a>
848868
@@ -1698,7 +1718,21 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
16981718<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#co' title="Literal rendering engine"><code>++co</code></a>
16991719<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rearco' title="Prepend and render atom as tape"><code>++rear:co</code></a>
17001720<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rendco' title="Render coin lot as tape"><code>++rend:co</code></a>
1701−<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rentco' title="Render coin lot as span"><code>++rent:co</code></a>
1721+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#rentco' title="Render coin as knot"><code>++rent:co</code></a>
1722+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#a-coco' title="Render decimal"><code>++a-co:co</code></a>
1723+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#c-coco' title="Render base58check"><code>++c-co:co</code></a>
1724+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#d-coco' title="Render decimal with min length"><code>++d-co:co</code></a>
1725+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#r-coco' title="Render floating point"><code>++r-co:co</code></a>
1726+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#s-coco' title="Render hex list"><code>++s-co:co</code></a>
1727+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#v-coco' title="Render base-32 with minimum length"><code>++v-co:co</code></a>
1728+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#w-coco' title="Render base-64 with minimum length"><code>++w-co:co</code></a>
1729+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#x-coco' title="Render hex with minimum length"><code>++x-co:co</code></a>
1730+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#y-coco' title="Render decimal with at least two digits"><code>++y-co:co</code></a>
1731+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#z-coco' title="Render '0x'-prefixed hex"><code>++z-co:co</code></a>
1732+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#em-coco' title="Render in numeric base"><code>++em-co:co</code></a>
1733+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#ed-coco' title="Format with decimal place"><code>++ed-co:co</code></a>
1734+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#ox-coco' title="Format dot-separated digits in numeric base"><code>++ox-co:co</code></a>
1735+<a class="tooltip" href='/docs/hoon/reference/stdlib/4k/#ro-coco' title="Format dot-prefixed bloqs in numeric base"><code>++ro-co:co</code></a>
17021736
17031737### 4l: parsing (atom parsing)
17041738
@@ -1707,12 +1741,18 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
17071741<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#crubso' title="Parse @da, @dr, @p, @t"><code>++crub:so</code></a>
17081742<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#nuckso' title="Toplevel coin parser"><code>++nuck:so</code></a>
17091743<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#nuskso' title="Parse coin literal with escapes"><code>++nusk:so</code></a>
1710−<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#perdso' title="Parses dime/tiple without standard prefixes"><code>++perd:so</code></a>
1744+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#perdso' title="Parsing coin literal without prefixes"><code>++perd:so</code></a>
17111745<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
1712−<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
1746+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-cellso' title="Convert rn to dn"><code>++royl-cell:so</code></a>
1747+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rhso' title="Parse half-precision float"><code>++royl-rh:so</code></a>
1748+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rqso' title="Parse quad-precision float"><code>++royl-rq:so</code></a>
1749+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rdso' title="Parse double-precision float"><code>++royl-rd:so</code></a>
1750+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rsso' title="Parse single-precision float"><code>++royl-rs:so</code></a>
1751+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#royl-rnso' title="Parse real number"><code>++royl-rn:so</code></a>
17131752<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#tashso' title="Parse signed dime"><code>++tash:so</code></a>
17141753<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#twidso' title="Parse coins without ~ prefix"><code>++twid:so</code></a>
1715−<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#zustso' title="Parse prefixed dimes from IP, loobean, or floating point"><code>++zust:so</code></a>
1754+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#whenso' title="Parse date"><code>++when:so</code></a>
1755+<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#zustso' title="Parse dimes from @i, @f, @r or @q"><code>++zust:so</code></a>
17161756
17171757### 4m: parsing (formatting functions)
17181758
lib/glossary.js+137−4
@@ -1416,6 +1416,13 @@ export const glossary = [
14161416 slug: "https://urbit.org/docs/reference/library/4h/#ace",
14171417 desc: "Used in the Hoon standard library.",
14181418 },
1419+ {
1420+ name: "Render decimal",
1421+ symbol: "a-co:co",
1422+ usage: "stdlib",
1423+ slug: "https://urbit.org/docs/reference/library/4k/#a-coco",
1424+ desc: "Used in the Hoon standard library.",
1425+ },
14191426 {
14201427 name: "Add",
14211428 symbol: "add",
@@ -1878,6 +1885,13 @@ export const glossary = [
18781885 slug: "https://urbit.org/docs/reference/library/2c/#cat",
18791886 desc: "Used in the Hoon standard library.",
18801887 },
1888+ {
1889+ name: "Render base58check",
1890+ symbol: "c-co:co",
1891+ usage: "stdlib",
1892+ slug: "https://urbit.org/docs/reference/library/4k/#c-coco",
1893+ desc: "Used in the Hoon standard library.",
1894+ },
18811895 {
18821896 name: "Parse % (cen)",
18831897 symbol: "cen",
@@ -2095,6 +2109,13 @@ export const glossary = [
20952109 slug: "https://urbit.org/docs/reference/library/3c/#dayyo",
20962110 desc: "Used in the Hoon standard library.",
20972111 },
2112+ {
2113+ name: "Render decimal with min length",
2114+ symbol: "d-co:co",
2115+ usage: "stdlib",
2116+ slug: "https://urbit.org/docs/reference/library/4k/#d-coco",
2117+ desc: "Used in the Hoon standard library.",
2118+ },
20982119 {
20992120 name: "Decrement",
21002121 symbol: "dec",
@@ -2438,6 +2459,13 @@ export const glossary = [
24382459 slug: "https://urbit.org/docs/reference/library/4f/#easy",
24392460 desc: "Used in the Hoon standard library.",
24402461 },
2462+ {
2463+ name: "Format with decimal place",
2464+ symbol: "ed-co:co",
2465+ usage: "stdlib",
2466+ slug: "https://urbit.org/docs/reference/library/4k/#ed-coco",
2467+ desc: "Used in the Hoon standard library.",
2468+ },
24412469 {
24422470 name: "Parsing location metadata",
24432471 symbol: "edge",
@@ -2459,6 +2487,13 @@ export const glossary = [
24592487 slug: "https://urbit.org/docs/reference/library/3a/#egcd",
24602488 desc: "Used in the Hoon standard library.",
24612489 },
2490+ {
2491+ name: "Render in numeric base",
2492+ symbol: "em-co:co",
2493+ usage: "stdlib",
2494+ slug: "https://urbit.org/docs/reference/library/4k/#em-coco",
2495+ desc: "Used in the Hoon standard library.",
2496+ },
24622497 {
24632498 name: "Minimum exponent",
24642499 symbol: "emn:fl",
@@ -4265,6 +4300,13 @@ export const glossary = [
42654300 slug: "https://urbit.org/docs/reference/library/2c/#outfe",
42664301 desc: "Used in the Hoon standard library.",
42674302 },
4303+ {
4304+ name: "Format dot-separated digits in numeric base",
4305+ symbol: "ox-co:co",
4306+ usage: "stdlib",
4307+ slug: "https://urbit.org/docs/reference/library/4k/#ox-coco",
4308+ desc: "Used in the Hoon standard library.",
4309+ },
42684310 {
42694311 name: "Initialize fl from ff core",
42704312 symbol: "pa:ff",
@@ -4322,7 +4364,7 @@ export const glossary = [
43224364 desc: "Used in the Hoon standard library.",
43234365 },
43244366 {
4325− name: "Parses dime/tiple without standard prefixes",
4367+ name: "Parse coin literal without prefixes",
43264368 symbol: "perd:so",
43274369 usage: "stdlib",
43284370 slug: "https://urbit.org/docs/reference/library/4l/#perdso",
@@ -4629,6 +4671,13 @@ export const glossary = [
46294671 slug: "https://urbit.org/docs/reference/library/3d/#rawsog",
46304672 desc: "Used in the Hoon standard library.",
46314673 },
4674+ {
4675+ name: "Render floating point",
4676+ symbol: "r-co:co",
4677+ usage: "stdlib",
4678+ slug: "https://urbit.org/docs/reference/library/4k/#r-coco",
4679+ desc: "Used in the Hoon standard library.",
4680+ },
46324681 {
46334682 name: "Pretty-printing engine (tank)",
46344683 symbol: "re",
@@ -4679,7 +4728,7 @@ export const glossary = [
46794728 desc: "Used in the Hoon standard library.",
46804729 },
46814730 {
4682− name: "Render coin lot as span",
4731+ name: "Render coin as knot",
46834732 symbol: "rent:co",
46844733 usage: "stdlib",
46854734 slug: "https://urbit.org/docs/reference/library/4k/#rentco",
@@ -4734,6 +4783,13 @@ export const glossary = [
47344783 slug: "https://urbit.org/docs/reference/library/4b/#rnat",
47354784 desc: "Used in the Hoon standard library.",
47364785 },
4786+ {
4787+ name: "Format dot-prefixed bloqs in numeric base",
4788+ symbol: "ro-co:co",
4789+ usage: "stdlib",
4790+ slug: "https://urbit.org/docs/reference/library/4k/#ro-coco",
4791+ desc: "Used in the Hoon standard library.",
4792+ },
47374793 {
47384794 name: "Roll left",
47394795 symbol: "rol:fe",
@@ -4777,12 +4833,47 @@ export const glossary = [
47774833 desc: "Used in the Hoon standard library.",
47784834 },
47794835 {
4780− name: "(Undocumented)",
4836+ name: "Convert rn to dn",
47814837 symbol: "royl-cell:so",
47824838 usage: "stdlib",
47834839 slug: "https://urbit.org/docs/reference/library/4l/#royl-cellso",
47844840 desc: "Used in the Hoon standard library.",
47854841 },
4842+ {
4843+ name: "Parse half-precision float",
4844+ symbol: "royl-rh:so",
4845+ usage: "stdlib",
4846+ slug: "https://urbit.org/docs/reference/library/4l/#royl-rhso",
4847+ desc: "Used in the Hoon standard library.",
4848+ },
4849+ {
4850+ name: "Parse quad-precision float",
4851+ symbol: "royl-rq:so",
4852+ usage: "stdlib",
4853+ slug: "https://urbit.org/docs/reference/library/4l/#royl-rqso",
4854+ desc: "Used in the Hoon standard library.",
4855+ },
4856+ {
4857+ name: "Parse double-precision float",
4858+ symbol: "royl-rd:so",
4859+ usage: "stdlib",
4860+ slug: "https://urbit.org/docs/reference/library/4l/#royl-rdso",
4861+ desc: "Used in the Hoon standard library.",
4862+ },
4863+ {
4864+ name: "Parse single-precision float",
4865+ symbol: "royl-rs:so",
4866+ usage: "stdlib",
4867+ slug: "https://urbit.org/docs/reference/library/4l/#royl-rsso",
4868+ desc: "Used in the Hoon standard library.",
4869+ },
4870+ {
4871+ name: "Parse real number",
4872+ symbol: "royl-rn:so",
4873+ usage: "stdlib",
4874+ slug: "https://urbit.org/docs/reference/library/4l/#royl-rnso",
4875+ desc: "Used in the Hoon standard library.",
4876+ },
47864877 {
47874878 name: "Right-shift",
47884879 symbol: "rsh",
@@ -4993,6 +5084,13 @@ export const glossary = [
49935084 slug: "https://urbit.org/docs/reference/library/4g/#scan",
49945085 desc: "Used in the Hoon standard library.",
49955086 },
5087+ {
5088+ name: "Render hex list",
5089+ symbol: "s-co:co",
5090+ usage: "stdlib",
5091+ slug: "https://urbit.org/docs/reference/library/4k/#s-coco",
5092+ desc: "Used in the Hoon standard library.",
5093+ },
49965094 {
49975095 name: "Render dime as cord",
49985096 symbol: "scot",
@@ -6309,6 +6407,13 @@ export const glossary = [
63096407 slug: "https://urbit.org/docs/reference/library/4o/#vase",
63106408 desc: "Used in the Hoon standard library.",
63116409 },
6410+ {
6411+ name: "Render base-32 with minimum length",
6412+ symbol: "v-co:co",
6413+ usage: "stdlib",
6414+ slug: "https://urbit.org/docs/reference/library/4k/#v-coco",
6415+ desc: "Used in the Hoon standard library.",
6416+ },
63126417 {
63136418 name: "Axis syntax parser",
63146419 symbol: "ven",
@@ -6393,6 +6498,13 @@ export const glossary = [
63936498 slug: "https://urbit.org/docs/reference/library/4c/#wash",
63946499 desc: "Used in the Hoon standard library.",
63956500 },
6501+ {
6502+ name: "Render base-64 with minimum length",
6503+ symbol: "w-co:co",
6504+ usage: "stdlib",
6505+ slug: "https://urbit.org/docs/reference/library/4k/#w-coco",
6506+ desc: "Used in the Hoon standard library.",
6507+ },
63966508 {
63976509 name: "Concatenate two lists",
63986510 symbol: "weld",
@@ -6505,6 +6617,13 @@ export const glossary = [
65056617 slug: "https://urbit.org/docs/reference/library/4j/#xne",
65066618 desc: "Used in the Hoon standard library.",
65076619 },
6620+ {
6621+ name: "Render hex with minimum length",
6622+ symbol: "x-co:co",
6623+ usage: "stdlib",
6624+ slug: "https://urbit.org/docs/reference/library/4k/#x-coco",
6625+ desc: "Used in the Hoon standard library.",
6626+ },
65086627 {
65096628 name: "Binary logarithm",
65106629 symbol: "xeb",
@@ -6533,6 +6652,13 @@ export const glossary = [
65336652 slug: "https://urbit.org/docs/reference/library/3c/#yawn",
65346653 desc: "Used in the Hoon standard library.",
65356654 },
6655+ {
6656+ name: "Render decimal with at least two digits",
6657+ symbol: "y-co:co",
6658+ usage: "stdlib",
6659+ slug: "https://urbit.org/docs/reference/library/4k/#y-coco",
6660+ desc: "Used in the Hoon standard library.",
6661+ },
65366662 {
65376663 name: "Date to @d",
65386664 symbol: "year",
@@ -6610,6 +6736,13 @@ export const glossary = [
66106736 slug: "https://urbit.org/docs/reference/library/3f/#zartun",
66116737 desc: "Used in the Hoon standard library.",
66126738 },
6739+ {
6740+ name: "Render '0x'-prefixed hex",
6741+ symbol: "z-co:co",
6742+ usage: "stdlib",
6743+ slug: "https://urbit.org/docs/reference/library/4k/#z-coco",
6744+ desc: "Used in the Hoon standard library.",
6745+ },
66136746 {
66146747 name: "Produce zero as float",
66156748 symbol: "zer:fl",
@@ -6639,7 +6772,7 @@ export const glossary = [
66396772 desc: "Used in the Hoon standard library.",
66406773 },
66416774 {
6642− name: "Parse prefixed dimes from IP, loobean, or floating point",
6775+ name: "Parse dimes from @i, @f, @r or @q",
66436776 symbol: "zust:so",
66446777 usage: "stdlib",
66456778 slug: "https://urbit.org/docs/reference/library/4l/#zustso",