on master help sign in
update stdlib sections 4a and 4b
45bf7eeTinnus Napbus
content/docs/hoon/reference/stdlib/4a.md+294−91
@@ -15,42 +15,42 @@ contained arms.
15#### Source
15#### Source
16
16
17```hoon
17```hoon
18− ~/ %po
18+~/ %po
19− =+ :- ^= sis :: prefix syllables
19+=+ :- ^= sis :: prefix syllables
20− 'dozmarbinwansamlitsighidfidlissogdirwacsabwissib\
20+ 'dozmarbinwansamlitsighidfidlissogdirwacsabwissib\
21− /rigsoldopmodfoglidhopdardorlorhodfolrintogsilmir\
21+ /rigsoldopmodfoglidhopdardorlorhodfolrintogsilmir\
22− /holpaslacrovlivdalsatlibtabhanticpidtorbolfosdot\
22+ /holpaslacrovlivdalsatlibtabhanticpidtorbolfosdot\
23− /losdilforpilramtirwintadbicdifrocwidbisdasmidlop\
23+ /losdilforpilramtirwintadbicdifrocwidbisdasmidlop\
24− /rilnardapmolsanlocnovsitnidtipsicropwitnatpanmin\
24+ /rilnardapmolsanlocnovsitnidtipsicropwitnatpanmin\
25− /ritpodmottamtolsavposnapnopsomfinfonbanmorworsip\
25+ /ritpodmottamtolsavposnapnopsomfinfonbanmorworsip\
26− /ronnorbotwicsocwatdolmagpicdavbidbaltimtasmallig\
26+ /ronnorbotwicsocwatdolmagpicdavbidbaltimtasmallig\
27− /sivtagpadsaldivdactansidfabtarmonranniswolmispal\
27+ /sivtagpadsaldivdactansidfabtarmonranniswolmispal\
28− /lasdismaprabtobrollatlonnodnavfignomnibpagsopral\
28+ /lasdismaprabtobrollatlonnodnavfignomnibpagsopral\
29− /bilhaddocridmocpacravripfaltodtiltinhapmicfanpat\
29+ /bilhaddocridmocpacravripfaltodtiltinhapmicfanpat\
30− /taclabmogsimsonpinlomrictapfirhasbosbatpochactid\
30+ /taclabmogsimsonpinlomrictapfirhasbosbatpochactid\
31− /havsaplindibhosdabbitbarracparloddosbortochilmac\
31+ /havsaplindibhosdabbitbarracparloddosbortochilmac\
32− /tomdigfilfasmithobharmighinradmashalraglagfadtop\
32+ /tomdigfilfasmithobharmighinradmashalraglagfadtop\
33− /mophabnilnosmilfopfamdatnoldinhatnacrisfotribhoc\
33+ /mophabnilnosmilfopfamdatnoldinhatnacrisfotribhoc\
34− /nimlarfitwalrapsarnalmoslandondanladdovrivbacpol\
34+ /nimlarfitwalrapsarnalmoslandondanladdovrivbacpol\
35− /laptalpitnambonrostonfodponsovnocsorlavmatmipfip'
35+ /laptalpitnambonrostonfodponsovnocsorlavmatmipfip'
36− ^= dex :: suffix syllables
36+ ^= dex :: suffix syllables
37− 'zodnecbudwessevpersutletfulpensytdurwepserwylsun\
37+ 'zodnecbudwessevpersutletfulpensytdurwepserwylsun\
38− /rypsyxdyrnuphebpeglupdepdysputlughecryttyvsydnex\
38+ /rypsyxdyrnuphebpeglupdepdysputlughecryttyvsydnex\
39− /lunmeplutseppesdelsulpedtemledtulmetwenbynhexfeb\
39+ /lunmeplutseppesdelsulpedtemledtulmetwenbynhexfeb\
40− /pyldulhetmevruttylwydtepbesdexsefwycburderneppur\
40+ /pyldulhetmevruttylwydtepbesdexsefwycburderneppur\
41− /rysrebdennutsubpetrulsynregtydsupsemwynrecmegnet\
41+ /rysrebdennutsubpetrulsynregtydsupsemwynrecmegnet\
42− /secmulnymtevwebsummutnyxrextebfushepbenmuswyxsym\
42+ /secmulnymtevwebsummutnyxrextebfushepbenmuswyxsym\
43− /selrucdecwexsyrwetdylmynmesdetbetbeltuxtugmyrpel\
43+ /selrucdecwexsyrwetdylmynmesdetbetbeltuxtugmyrpel\
44− /syptermebsetdutdegtexsurfeltudnuxruxrenwytnubmed\
44+ /syptermebsetdutdegtexsurfeltudnuxruxrenwytnubmed\
45− /lytdusnebrumtynseglyxpunresredfunrevrefmectedrus\
45+ /lytdusnebrumtynseglyxpunresredfunrevrefmectedrus\
46− /bexlebduxrynnumpyxrygryxfeptyrtustyclegnemfermer\
46+ /bexlebduxrynnumpyxrygryxfeptyrtustyclegnemfermer\
47− /tenlusnussyltecmexpubrymtucfyllepdebbermughuttun\
47+ /tenlusnussyltecmexpubrymtucfyllepdebbermughuttun\
48− /bylsudpemdevlurdefbusbeprunmelpexdytbyttyplevmyl\
48+ /bylsudpemdevlurdefbusbeprunmelpexdytbyttyplevmyl\
49− /wedducfurfexnulluclennerlexrupnedlecrydlydfenwel\
49+ /wedducfurfexnulluclennerlexrupnedlecrydlydfenwel\
50− /nydhusrelrudneshesfetdesretdunlernyrsebhulryllud\
50+ /nydhusrelrudneshesfetdesretdunlernyrsebhulryllud\
51− /remlysfynwerrycsugnysnyllyndyndemluxfedsedbecmun\
51+ /remlysfynwerrycsugnysnyllyndyndemluxfedsedbecmun\
52− /lyrtesmudnytbyrsenwegfyrmurtelreptegpecnelnevfes'
52+ /lyrtesmudnytbyrsenwegfyrmurtelreptegpecnelnevfes'
53− |%
53+|%
54```
54```
55
55
56---
56---
@@ -63,33 +63,37 @@ Produces the byte of the right-hand syllable `a`.
63
63
64#### Accepts
64#### Accepts
65
65
66−`a` is an atom.
66+`a` is a `@tas`.
67
67
68#### Produces
68#### Produces
69
69
70−A `unit`.
70+A `(unit @)`.
71
71
72#### Source
72#### Source
73
73
74```hoon
74```hoon
75− ++ ind ~/ %ind
75+++ ind ~/ %ind
76− |= a=@tas
76+ |= a=@tas
77− =+ b=0
77+ =+ b=0
78− |- ^- (unit @)
78+ |- ^- (unit @)
79− ?:(=(256 b) ~ ?:(=(a (tod b)) [~ b] $(b +(b))))
79+ ?:(=(256 b) ~ ?:(=(a (tod b)) [~ b] $(b +(b))))
80```
80```
81
81
82#### Examples
82#### Examples
83
83
84```
84```
85− > (ind:po 'zod')
85+> (ind:po %zod)
86− [~ 0]
86+[~ 0]
87+```
87
88
89+```
88− > (ind:po 'zam')
90+> (ind:po %foo)
89− ~
91+~
92+```
90
93
94+```
91− > (ind:po 'del')
95+> (ind:po %wet)
92− [~ 37]
96+[~ 101]
93```
97```
94
98
95---
99---
@@ -102,36 +106,37 @@ Produces the byte of the left-hand phonetic syllable `a`.
102
106
103#### Accepts
107#### Accepts
104
108
105−`a` is an atom.
109+`a` is a `@tas`.
106
110
107#### Produces
111#### Produces
108
112
109−A `unit` of an atom.
113+A `(unit @)`.
110
114
111#### Source
115#### Source
112
116
113```hoon
117```hoon
114− ++ ins ~/ %ins
118+++ ins ~/ %ins
115− |= a=@tas
119+ |= a=@tas
116− =+ b=0
120+ =+ b=0
117− |- ^- (unit @)
121+ |- ^- (unit @)
118− ?:(=(256 b) ~ ?:(=(a (tos b)) [~ b] $(b +(b))))
122+ ?:(=(256 b) ~ ?:(=(a (tos b)) [~ b] $(b +(b))))
119```
123```
120
124
121#### Examples
125#### Examples
122
126
123```
127```
124− > (ins:po 'mar')
128+> (ins:po %doz)
125− [~ 1]
129+[~ 0]
126−
130+```
127− > (ins:po 'son')
128− [~ 164]
129
131
132+```
130− > (ins:po 'pit')
133+> (ins:po %foo)
131− [~ 242]
134+~
135+```
132
136
137+```
133− > (ins:po 'pok')
138+> (ins:po %pit)
134− ~
139+[~ 242]
135```
140```
136
141
137---
142---
@@ -153,30 +158,30 @@ An atom.
153#### Source
158#### Source
154
159
155```hoon
160```hoon
156− ++ tod ~/ %tod
161+++ tod ~/ %tod
157− |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] dex)))
162+ |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] dex)))
158```
163```
159
164
160#### Examples
165#### Examples
161
166
162```
167```
163− > `@t`(tod:po 1)
164− 'nec'
165−
166− > `@t`(tod:po 98)
167− 'dec'
168−
169− > `@t`(tod:po 0)
168+> `@t`(tod:po 0)
170− 'zod'
169+'zod'
170+```
171
171
172+```
172− > `@t`(tod:po 150)
173+> `@t`(tod:po 100)
173− 'ryg'
174+'syr'
175+```
174
176
177+```
175− > `@t`(tod:po 255)
178+> `@t`(tod:po 255)
176− 'fes'
179+'fes'
180+```
177
181
182+```
178− > `@t`(tod:po 256)
183+> `@t`(tod:po 256)
179− ! exit
184+dojo: hoon expression failed
180```
185```
181
186
182---
187---
@@ -198,24 +203,222 @@ An atom.
198#### Source
203#### Source
199
204
200```hoon
205```hoon
201− ++ tos ~/ %tos
206+++ tos ~/ %tos
202− |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] sis)))
207+ |=(a=@ ?>((lth a 256) (cut 3 [(mul 3 a) 3] sis)))
208+```
209+
210+#### Examples
211+
212+```
213+> `@t`(tos:po 0)
214+'doz'
215+```
216+
217+```
218+> `@t`(tos:po 100)
219+'soc'
220+```
221+
222+```
223+> `@t`(tos:po 255)
224+'fip'
225+```
226+
227+```
228+> `@t`(tos:po 256)
229+dojo: hoon expression failed
230+```
231+
232+---
233+
234+## `++fa`
235+
236+base58check
237+
238+Container core for base58check (e.g. bitcoin address) functions.
239+
240+#### Source
241+
242+```hoon
243+++ fa
244+ =+ key='123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
245+ =/ yek=@ux ~+
246+ =- yek:(roll (rip 3 key) -)
247+ =+ [a=*char b=*@ yek=`@ux`(fil 3 256 0xff)]
248+ |.
249+ [+(b) (mix yek (lsh [3 `@u`a] (~(inv fe 3) b)))]
250+ |%
251+```
252+
253+---
254+
255+### `++cha:fa`
256+
257+Decode base58check character
258+
259+Check whether character `a` is valid in base58check encoding, producing a `unit` of its decoded value if it's valid, and a null `unit` if it's not.
260+
261+#### Accepts
262+
263+`a` is a `char`.
264+
265+#### Produces
266+
267+A `(unit @uF)`.
268+
269+#### Source
270+
271+```hoon
272+++ cha |=(a=char `(unit @uF)`=+(b=(cut 3 [`@`a 1] yek) ?:(=(b 0xff) ~ `b)))
203```
273```
204
274
205#### Examples
275#### Examples
206
276
207```
277```
208− > `@t`(tos:po 0)
278+> (cha:fa 'Z')
209− 'doz'
279+[~ 32]
280+```
281+
282+```
283+> (cha:fa 'n')
284+[~ 45]
285+```
210
286
211− > `@t`(tos:po 120)
287+```
212− 'fab'
288+> (cha:fa 'l')
289+~
290+```
213
291
214− > `@t`(tos:po 43)
292+---
215− 'pid'
293+
294+### `++tok:fa`
295+
296+Compute base58check checksum
297+
298+Compute the base58check checksum of `a`.
299+
300+#### Accepts
301+
302+`a` is a `@ux`.
303+
304+#### Produces
216
305
217− > `@t`(tos:po 253)
306+A `@ux`.
218− 'mat'
307+
308+#### Source
309+
310+```hoon
311+++ tok
312+ |= a=@ux ^- @ux
313+ =+ b=(pad a)
314+ =- (~(net fe 5) (end [3 4] (shay 32 -)))
315+ (shay (add b (met 3 a)) (lsh [3 b] (swp 3 a)))
316+```
317+
318+#### Examples
319+
320+```
321+> (tok:fa 0xdead.beef)
322+0x938b.8b0c
323+```
324+
325+---
326+
327+### `++pad:fa`
328+
329+base58check padding bytes
330+
331+Compute the number of bytes of 0s needed to pad `a` to 21 bytes, if it's less
332+than 21 bytes.
333+
334+#### Accepts
335+
336+`a` is a `@` - a value without its base58check checksum.
337+
338+#### Produces
339+
340+A `@`.
341+
342+#### Source
343+
344+```hoon
345+++ pad |=(a=@ =+(b=(met 3 a) ?:((gte b 21) 0 (sub 21 b))))
346+```
347+
348+#### Examples
349+
350+```
351+> (pad:fa 0xdead.beef)
352+17
353+```
354+
355+---
356+
357+### `++enc:fa`
358+
359+encode base58check
360+
361+Compute and append checksum to `a`.
362+
363+#### Accepts
364+
365+`a` is a `@ux`.
366+
367+#### Produces
368+
369+A `@ux`.
370+
371+#### Source
372+
373+```hoon
374+++ enc |=(a=@ux `@ux`(mix (lsh [3 4] a) (tok a)))
375+```
376+
377+#### Example
378+
379+```
380+> (enc:fa 0xdead.beef)
381+0xdead.beef.938b.8b0c
382+```
383+
384+---
385+
386+### `++den:fa`
387+
388+decode base58check
389+
390+Check checksum of `a`, return a `unit` of `a` sans the checksum if successful,
391+or a null `unit` otherwise.
392+
393+#### Accepts
394+
395+`a` is a `@ux`
396+
397+#### Produces
398+
399+A `(unit @ux)`.
400+
401+#### Source
402+
403+```hoon
404+++ den
405+ |= a=@ux ^- (unit @ux)
406+ =+ b=(rsh [3 4] a)
407+ ?. =((tok b) (end [3 4] a))
408+ ~
409+ `b
410+```
411+
412+#### Examples
413+
414+```
415+> (den:fa 0xdead.beef.938b.8b0c)
416+[~ 0xdead.beef]
417+```
418+
419+```
420+> (den:fa 0xdead.beef.1111.1111)
421+~
219```
422```
220
423
221---
424---
content/docs/hoon/reference/stdlib/4b.md+823−496
@@ -6,174 +6,492 @@ template = "doc.html"
6
6
7## `++at`
7## `++at`
8
8
9+Basic printing
10+
11+Container core for basic atom printing functions.
12+
13+**Note that these are largely deprecated, using outdated syntax, character
14+mappings and encodings, and should generally not be used.**
15+
16+#### Accepts
17+
18+`a` is a `@`.
19+
20+#### Source
21+
9```hoon
22```hoon
10− ++ at
23+++ at
11− |_ a=@
24+ |_ a=@
12```
25```
13
26
14−XX document
27+---
15
28
16### `++r:at`
29### `++r:at`
17
30
31+Print term, number or hex
32+
33+If `a` is composed of the letters `a` through `z` and `-`, print as `@tas`
34+syntax. If `a` is an atom of two bytes or less, print as an integer with
35+comma-separated thousands. Otherwise, print `a` as `@ux` syntax.
36+
37+#### Accepts
38+
39+`a` is a `@`, and is the sample of `++at`.
40+
41+#### Produces
42+
43+A `tape`.
44+
45+#### Source
46+
18```hoon
47```hoon
19− ++ r
48+++ r
20− ?: ?& (gte (met 3 a) 2)
49+ ?: ?& (gte (met 3 a) 2)
21− |-
50+ |-
22− ?: =(0 a)
51+ ?: =(0 a)
23− &
52+ &
24− =+ vis=(end 3 1 a)
53+ =+ vis=(end 3 a)
25− ?& ?|(=('-' vis) ?&((gte vis 'a') (lte vis 'z')))
54+ ?& ?|(=('-' vis) ?&((gte vis 'a') (lte vis 'z')))
26− $(a (rsh 3 1 a))
55+ $(a (rsh 3 a))
27− ==
56+ ==
28− ==
57+ ==
29− rtam
58+ rtam
30− ?: (lte (met 3 a) 2)
59+ ?: (lte (met 3 a) 2)
31− rud
60+ rud
32− rux
61+ rux
33−```
62+```
34−
63+
35−XX document
64+#### Examples
65+
66+```
67+> ~(r at 'foo-bar')
68+"%foo-bar"
69+```
70+
71+```
72+> ~(r at 0xbeef)
73+"48,879"
74+```
75+
76+```
77+> ~(r at 0xdead.beef)
78+"0xdead-beef"
79+```
80+
81+---
36
82
37### `++rf:at`
83### `++rf:at`
38
84
85+Print loobean
86+
87+If `a` is a loobean, print as `|`/`&`, otherwise crash.
88+
89+#### Accepts
90+
91+`a` is a `@`, and is the sample of `++at`.
92+
93+#### Produces
94+
95+A `tape`.
96+
97+#### Source
98+
39```hoon
99```hoon
40− ++ rf `tape`[?-(a $& '&', $| '|', * !!) ~]
100+++ rf `tape`[?-(a %& '&', %| '|', * !!) ~]
101+```
102+
103+#### Examples
104+
105+```
106+> ~(rf at %.y)
107+"&"
41```
108```
42
109
43−XX document
110+```
111+> ~(rf at %.n)
112+"|"
113+```
114+
115+```
116+> ~(rf at 'foo')
117+dojo: hoon expression failed
118+```
119+
120+---
44
121
45### `++rn:at`
122### `++rn:at`
46
123
124+Print null
125+
126+If `a` is null, print `~`, otherwise crash.
127+
128+#### Accepts
129+
130+`a` is a `@`, and is the sample of `++at`.
131+
132+#### Produces
133+
134+A `tape`.
135+
136+#### Source
137+
47```hoon
138```hoon
48− ++ rn `tape`[?>(=(0 a) '~') ~]
139+++ rn `tape`[?>(=(0 a) '~') ~]
140+```
141+
142+#### Examples
143+
144+```
145+> ~(rn at ~)
146+"~"
49```
147```
50
148
51−XX document
149+```
150+> ~(rn at 'foo')
151+dojo: hoon expression failed
152+```
52
153
53### `++rt:at`
154### `++rt:at`
54
155
156+Print cord, including escape characters
157+
158+Print `a` with `cord` syntax, including escape characters.
159+
160+#### Accepts
161+
162+`a` is a `@`, and the sample of `++at`.
163+
164+#### Produces
165+
166+A `tape`.
167+
168+#### Source
169+
55```hoon
170```hoon
56− ++ rt `tape`['\'' (weld (mesc (trip a)) `tape`['\'' ~])]
171+++ rt `tape`['\'' (weld (mesc (trip a)) `tape`['\'' ~])]
172+```
173+
174+#### Examples
175+
176+```
177+> ~(rt at 'foo')
178+"'foo'"
179+```
180+
181+```
182+> ~(rt at 'fo\\o')
183+"'fo\\\\o'"
184+```
185+
186+```
187+> ~(rt at 'fo\'o')
188+"'fo\\0x27/o'"
57```
189```
58
190
59−XX document
191+---
60
192
61### `++rta:at`
193### `++rta:at`
62
194
195+Same as `++rt:at`
196+
197+#### Source
198+
63```hoon
199```hoon
64− ++ rta rt
200+++ rta rt
65```
201```
66
202
67−XX document
203+---
68
204
69### `++rtam:at`
205### `++rtam:at`
70
206
207+Print cord with `@tas` syntax
208+
209+Treat `a` as `cord`, print it with `%` prefix.
210+
211+#### Accepts
212+
213+`a` is a `@`, and is the sample of `++at`.
214+
215+#### Produces
216+
217+A `tape`.
218+
219+#### Source
220+
71```hoon
221```hoon
72− ++ rtam `tape`['%' (trip a)]
222+++ rtam `tape`['%' (trip a)]
73```
223```
74
224
75−XX document
225+#### Examples
226+
227+```
228+> ~(rtam at 'foo')
229+"%foo"
230+```
231+
232+```
233+> ~(rtam at '12')
234+"%12"
235+```
236+
237+```
238+> ~(rtam at '!!!')
239+"%!!!"
240+```
241+
242+---
76
243
77### `++rub:at`
244### `++rub:at`
78
245
246+Print binary
247+
248+Print `a` as `@ub` syntax, except with `-` separators rather than `.` separators.
249+
250+#### Accepts
251+
252+`a` is a `@`, and is the sample of `++at`.
253+
254+#### Produces
255+
256+A `tape`.
257+
258+#### Source
259+
79```hoon
260```hoon
80− ++ rub `tape`['0' 'b' (rum 2 ~ |=(b/@ (add '0' b)))]
261+++ rub `tape`['0' 'b' (rum 2 ~ |=(b=@ (add '0' b)))]
262+```
263+
264+#### Examples
265+
266+```
267+> ~(rub at 0xbeef)
268+"0b1011-1110-1110-1111"
81```
269```
82
270
83−XX document
271+---
84
272
85### `++rud:at`
273### `++rud:at`
86
274
275+Print atom as integer
276+
277+Print atom `a` as an integer, with commas separating thousands.
278+
279+#### Accepts
280+
281+`a` is a `@`.
282+
283+#### Produces
284+
285+A `tape`.
286+
287+#### Source
288+
87```hoon
289```hoon
88− ++ rud (rum 10 ~ |=(b/@ (add '0' b)))
290+++ rud (rum 10 ~ |=(b=@ (add '0' b)))
89```
291```
90
292
91−XX document
293+#### Examples
294+
295+```
296+> ~(rud at 0xbeef)
297+"48,879"
298+```
299+
300+---
92
301
93### `++rum:at`
302### `++rum:at`
94
303
304+Print base-n
305+
306+Print `a` as base `b` with suffix `c` and using gate `d` to convert blocks to
307+characters. Each set of four characters will be separated by `-`, except for
308+base 10 which will be printed with commas separating thousands.
309+
310+#### Accepts
311+
312+- `a` is a `@`, and is the sample of `++at`
313+- `b` is a `@`, denoting the the base.
314+- `c` is a `tape`, and will be appended to the end of the result.
315+- `d` is a `gate` that takes `@` and produces `@`.
316+
317+#### Produces
318+
319+A `tape`.
320+
321+#### Source
322+
95```hoon
323```hoon
96− ++ rum
324+++ rum
97− |= {b/@ c/tape d/$-(@ @)}
325+ |= [b=@ c=tape d=$-(@ @)]
98− ^- tape
326+ ^- tape
99− ?: =(0 a)
327+ ?: =(0 a)
100− [(d 0) c]
328+ [(d 0) c]
101− =+ e=0
329+ =+ e=0
102− |- ^- tape
330+ |- ^- tape
103− ?: =(0 a)
331+ ?: =(0 a)
104− c
332+ c
105− =+ f=&(!=(0 e) =(0 (mod e ?:(=(10 b) 3 4))))
333+ =+ f=&(!=(0 e) =(0 (mod e ?:(=(10 b) 3 4))))
106− %= $
334+ %= $
107− a (div a b)
335+ a (div a b)
108− c [(d (mod a b)) ?:(f [?:(=(10 b) ',' '-') c] c)]
336+ c [(d (mod a b)) ?:(f [?:(=(10 b) ',' '-') c] c)]
109− e +(e)
337+ e +(e)
110− ==
338+ ==
111− ::
339+```
340+
341+#### Examples
342+
343+```
344+> (~(rum at 0xdead.beef) 10 ~ |=(b=@ (add '0' b)))
345+"3,735,928,559"
346+```
347+
348+```
349+> (~(rum at 0xdead.beef) 10 " m/s" |=(b=@ (add '0' b)))
350+"3,735,928,559 m/s"
351+```
352+
353+```
354+> (~(rum at 0xdead.beef) 2 ~ |=(b=@ (add '0' b)))
355+"1101-1110-1010-1101-1011-1110-1110-1111"
112```
356```
113
357
114−XX document
358+---
115
359
116### `++rup:at`
360### `++rup:at`
117
361
362+Print `@p` (outdated)
363+
364+Print `a` as an `@p`, but with outdated syntax and number<->syllable mapping. This
365+function almost certainly should not be used.
366+
367+#### Accepts
368+
369+`a` is a `@`.
370+
371+#### Produces
372+
373+A `tape`.
374+
375+#### Source
376+
118```hoon
377```hoon
119− ++ rup
378+++ rup
120− =+ b=(met 3 a)
379+ =+ b=(met 3 a)
121− ^- tape
380+ ^- tape
122− :- '-'
381+ :- '-'
123− |- ^- tape
382+ |- ^- tape
124− ?: (gth (met 5 a) 1)
383+ ?: (gth (met 5 a) 1)
125− %+ weld
384+ %+ weld
126− $(a (rsh 5 1 a), b (sub b 4))
385+ $(a (rsh 5 a), b (sub b 4))
127− `tape`['-' '-' $(a (end 5 1 a), b 4)]
386+ `tape`['-' '-' $(a (end 5 a), b 4)]
128− ?: =(0 b)
387+ ?: =(0 b)
129− ['~' ~]
388+ ['~' ~]
130− ?: (lte b 1)
389+ ?: (lte b 1)
131− (trip (tos:po a))
390+ (trip (tos:po a))
132− |- ^- tape
391+ |- ^- tape
133− ?: =(2 b)
392+ ?: =(2 b)
134− =+ c=(rsh 3 1 a)
393+ =+ c=(rsh 3 a)
135− =+ d=(end 3 1 a)
394+ =+ d=(end 3 a)
136− (weld (trip (tod:po c)) (trip (tos:po (mix c d))))
395+ (weld (trip (tod:po c)) (trip (tos:po (mix c d))))
137− =+ c=(rsh 3 2 a)
396+ =+ c=(rsh [3 2] a)
138− =+ d=(end 3 2 a)
397+ =+ d=(end [3 2] a)
139− (weld ^$(a c, b (met 3 c)) `tape`['-' $(a (mix c d), b 2)])
398+ (weld ^$(a c, b (met 3 c)) `tape`['-' $(a (mix c d), b 2)])
140− ::
399+```
400+
401+#### Examples
402+
403+```
404+> ~(rup at 0xdead.beef)
405+"-rylsal-sellac"
141−```
406+```
142−
407+
143−XX document
408+```
409+> ~(rup at ~sampel-palnet)
410+"-sellod-lebdiv"
411+```
412+
413+```
414+> ~(rup at ~zod)
415+"-~"
416+```
417+
418+---
144
419
145### `++ruv:at`
420### `++ruv:at`
146
421
422+Print base-64
423+
424+Print `a` as **outdated** base-64 syntax, with `0v` rather than `0w` prefix,
425+different character mappings and separators.
426+
427+#### Accepts
428+
429+`a` is a `@`, and is the sample of `++at`.
430+
431+#### Produces
432+
433+A `tape`.
434+
435+#### Source
436+
147```hoon
437```hoon
148− ++ ruv
438+++ ruv
149− ^- tape
439+ ^- tape
150− :+ '0'
440+ :+ '0'
151− 'v'
441+ 'v'
152− %^ rum
442+ %^ rum
153− 64
443+ 64
154− ~
444+ ~
155− |= b/@
445+ |= b=@
156− ?: =(63 b)
446+ ?: =(63 b)
157− '+'
447+ '+'
158− ?: =(62 b)
448+ ?: =(62 b)
159− '-'
449+ '-'
160− ?:((lth b 26) (add 65 b) ?:((lth b 52) (add 71 b) (sub b 4)))
450+ ?:((lth b 26) (add 65 b) ?:((lth b 52) (add 71 b) (sub b 4)))
161− ::
451+```
452+
453+#### Examples
454+
455+```
456+> ~(ruv at 0xdead.beef)
457+"0vDe-rb7v"
162−```
458+```
163−
459+
164−XX document
460+Note this is how it should be rendered:
461+
462+```
463+> `@uw`0xdead.beef
464+0w3.uHrXL
465+```
466+
467+---
165
468
166### `++rux:at`
469### `++rux:at`
167
470
471+Print hexadecimal
472+
473+Print `a` as `@ux` except with `-` separators rather than `.`s.
474+
475+#### Accepts
476+
477+`a` is a `@`, and is the sample of `++at`.
478+
479+#### Produces
480+
481+A `tape`.
482+
483+#### Source
484+
168```hoon
485```hoon
169− ++ rux `tape`['0' 'x' (rum 16 ~ |=(b/@ (add b ?:((lth b 10) 48 87))))]
486+++ rux `tape`['0' 'x' (rum 16 ~ |=(b=@ (add b ?:((lth b 10) 48 87))))]
170− --
171− :::::::::::::::::::::::::::::::::::::::::::::::::::::: ::
172```
487```
173
488
174−XX document
489+#### Examples
175
490
176−---
491+```
492+> ~(rux at 0xdead.beef)
493+"0xdead-beef"
494+```
177
495
178---
496---
179
497
@@ -181,37 +499,37 @@ XX document
181
499
182To lowercase
500To lowercase
183
501
184−Turn all occurences of uppercase letters in any `++tape` into lowercase
502+Turn all occurences of uppercase letters in any `tape` into lowercase
185−letters. Returns a `++tape`.
503+letters. Returns a `tape`.
186
504
187#### Accepts
505#### Accepts
188
506
189−`vib` is a `++tape`.
507+`vib` is a `tape`.
190
508
191#### Produces
509#### Produces
192
510
193−A `++tape`.
511+A `tape`.
194
512
195#### Source
513#### Source
196
514
197```hoon
515```hoon
198− ++ cass :: lowercase
516+++ cass
199− |= vib/tape
517+ |= vib=tape
200− ^- tape
518+ ^- tape
201− (turn vib |=(a/@ ?.(&((gte a 'A') (lte a 'Z')) a (add 32 a))))
519+ (turn vib |=(a=@ ?.(&((gte a 'A') (lte a 'Z')) a (add 32 a))))
202```
520```
203
521
204#### Examples
522#### Examples
205
523
206```
524```
207− > (cass "JOHN DOE")
525+> (cass "JOHN DOE")
208− "john doe"
526+"john doe"
209
527
210− > (cass "abc ABC 123 !@#")
528+> (cass "abc ABC 123 !@#")
211− "abc abc 123 !@#"
529+"abc abc 123 !@#"
212
530
213− > (cass "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
531+> (cass "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
214− "aabbccddeeffgghhiijjkkllmmnnooppqqrrssqqrrvvwwxxyyzz"
532+"aabbccddeeffgghhiijjkkllmmnnooppqqrrssqqrrvvwwxxyyzz"
215```
533```
216
534
217---
535---
@@ -220,33 +538,33 @@ A `++tape`.
220
538
221Tape to cord
539Tape to cord
222
540
223−Produce a `++cord` from a `++tape`.
541+Produce a `cord` from a `tape`.
224
542
225#### Accepts
543#### Accepts
226
544
227−`a` is a `++tape`.
545+`a` is a `tape`.
228
546
229#### Produces
547#### Produces
230
548
231−A `++cord`.
549+A `cord`.
232
550
233#### Source
551#### Source
234
552
235```hoon
553```hoon
236− ++ crip |=(a=tape `@t`(rap 3 a)) :: tape to cord
554+++ crip |=(a=tape `@t`(rap 3 a))
237```
555```
238
556
239#### Examples
557#### Examples
240
558
241```
559```
242− > (crip "john doe")
560+> (crip "john doe")
243− 'john doe'
561+'john doe'
244
562
245− > (crip "abc 123 !@#")
563+> (crip "abc 123 !@#")
246− 'abc 123 !@#'
564+'abc 123 !@#'
247
565
248− > `@ud`(crip "abc")
566+> `@ud`(crip "abc")
249− 6.513.249
567+6.513.249
250```
568```
251
569
252---
570---
@@ -255,37 +573,37 @@ A `++cord`.
255
573
256To uppercase
574To uppercase
257
575
258−Turn all occurences of lowercase letters in any `++tape` into uppercase
576+Turn all occurences of lowercase letters in any `tape` into uppercase
259−letters. Returns a `++tape`.
577+letters. Returns a `tape`.
260
578
261#### Accepts
579#### Accepts
262
580
263−`vib` is a `++tape`.
581+`vib` is a `tape`.
264
582
265#### Produces
583#### Produces
266
584
267−A `++tape`.
585+A `tape`.
268
586
269#### Source
587#### Source
270
588
271```hoon
589```hoon
272− ++ cuss :: uppercase
590+++ cuss
273− |= vib/tape
591+ |= vib=tape
274− ^- tape
592+ ^- tape
275− (turn vib |=(a/@ ?.(&((gte a 'a') (lte a 'z')) a (sub a 32))))
593+ (turn vib |=(a=@ ?.(&((gte a 'a') (lte a 'z')) a (sub a 32))))
276```
594```
277
595
278#### Examples
596#### Examples
279
597
280```
598```
281− > (cuss "john doe")
599+> (cuss "john doe")
282− "JOHN DOE"
600+"JOHN DOE"
283
601
284− > (cuss "abc ABC 123 !@#")
602+> (cuss "abc ABC 123 !@#")
285− "ABC ABC 123 !@#"
603+"ABC ABC 123 !@#"
286
604
287− > (cuss "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
605+> (cuss "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsQqRrVvWwXxYyZz")
288− "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSQQRRVVWWXXYYZZ"
606+"AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSQQRRVVWWXXYYZZ"
289```
607```
290
608
291---
609---
@@ -294,40 +612,40 @@ A `++tape`.
294
612
295Escape special chars
613Escape special chars
296
614
297−Escape special characters, used in `++show`.
615+Escape special characters.
298
616
299#### Accepts
617#### Accepts
300
618
301−`vib` is a `++tape`.
619+`vib` is a `tape`.
302
620
303#### Produces
621#### Produces
304
622
305−A `++tape`.
623+A `tape`.
306
624
307#### Source
625#### Source
308
626
309```hoon
627```hoon
310− ++ mesc :: ctrl code escape
628+++ mesc
311− |= vib/tape
629+ |= vib=tape
312− ^- tape
630+ ^- tape
313− ?~ vib
631+ ?~ vib
314− ~
632+ ~
315− ?: =('\\' i.vib)
633+ ?: =('\\' i.vib)
316− ['\\' '\\' $(vib t.vib)]
634+ ['\\' '\\' $(vib t.vib)]
317− ?: ?|((gth i.vib 126) (lth i.vib 32) =(`@`39 i.vib))
635+ ?: ?|((gth i.vib 126) (lth i.vib 32) =(`@`39 i.vib))
318− ['\\' (welp ~(rux at i.vib) '/' $(vib t.vib))]
636+ ['\\' (welp ~(rux at i.vib) '/' $(vib t.vib))]
319− [i.vib $(vib t.vib)]
637+ [i.vib $(vib t.vib)]
320```
638```
321
639
322#### Examples
640#### Examples
323
641
324```
642```
325− > (mesc "ham lus")
643+> (mesc "ham lus")
326− "ham lus"
644+"ham lus"
327− > (mesc "bas\\hur")
645+> (mesc "bas\\hur")
328− "bas\\\\hur"
646+"bas\\\\hur"
329− > (mesc "as'saß")
647+> (mesc "as'saß")
330− "as\0x27/sa\0xc3/\0x9f/"
648+"as\0x27/sa\0xc3/\0x9f/"
331```
649```
332
650
333---
651---
@@ -336,37 +654,37 @@ A `++tape`.
336
654
337Prepend `n` times
655Prepend `n` times
338
656
339−Add `a` repetitions of character `b` to the head of `++tape` `c`.
657+Add `a` repetitions of character `b` to the head of `tape` `c`.
340
658
341#### Accepts
659#### Accepts
342
660
343−`a` and `b` are atoms.
661+`[a b]` are atoms.
344
662
345−`c` is a `++tape`.
663+`c` is a `tape`.
346
664
347#### Produces
665#### Produces
348
666
349−A `++tape`.
667+A `tape`.
350
668
351#### Source
669#### Source
352
670
353```hoon
671```hoon
354− ++ runt :: prepend repeatedly
672+++ runt
355− |= [[a/@ b/@] c/tape]
673+ |= [[a=@ b=@] c=tape]
356− ^- tape
674+ ^- tape
357− ?: =(0 a)
675+ ?: =(0 a)
358− c
676+ c
359− [b $(a (dec a))]
677+ [b $(a (dec a))]
360− ::
361```
678```
362
679
363#### Examples
680#### Examples
364
681
365```
682```
366− > (runt [2 '/'] "ham")
683+> (runt [2 '/'] "ham")
367− "//ham"
684+"//ham"
685+
368− > (runt [10 'a'] "")
686+> (runt [10 'a'] "")
369− "aaaaaaaaaa"
687+"aaaaaaaaaa"
370```
688```
371
689
372---
690---
@@ -375,11 +693,12 @@ A `++tape`.
375
693
376Soft-cast by aura
694Soft-cast by aura
377
695
378−Soft-cast validity by aura.
696+Check characters in `b` are valid for aura `a`. Produce a `unit` of `a` if valid
697+and a null `unit` if not. Takes `a` and produces a gate that takes `b`.
379
698
380#### Accepts
699#### Accepts
381
700
382−`a` is a `++span` (`@ta`).
701+`a` is a `@ta`, and specifies the aura like `%tas` or `%ta`.
383
702
384`b` is an atom.
703`b` is an atom.
385
704
@@ -390,20 +709,21 @@ A `(unit @)`.
390#### Source
709#### Source
391
710
392```hoon
711```hoon
393− ++ sand :: atom sanity
712+++ sand
394− |= a/@ta
713+ |= a=@ta
395− |= b/@ ^- (unit @)
396− ?.(((sane a) b) ~ [~ b])
714+ (flit (sane a))
397− ::
398```
715```
399
716
400#### Examples
717#### Examples
401
718
402```
719```
403− > `(unit @ta)`((sand %ta) 'sym-som')
720+> `(unit @ta)`((sand %ta) 'sym-som')
404− [~ ~.sym-som]
721+[~ ~.sym-som]
722+```
723+
724+```
405− > `(unit @ta)`((sand %ta) 'err!')
725+> `(unit @ta)`((sand %ta) 'err!')
406− ~
726+~
407```
727```
408
728
409---
729---
@@ -412,76 +732,79 @@ A `(unit @)`.
412
732
413Check aura validity
733Check aura validity
414
734
415−Check validity by aura. Produces a gate.
735+Check validity of `a` by aura `b`. Takes `b` and produces a gate that takes `a`.
416
736
417#### Accepts
737#### Accepts
418
738
419−`a` is a `++span` (`@ta`).
739+`a` is a `@ta`, and specifies the aura like `%tas` or `%ta`.
420
740
421`b` is an atom.
741`b` is an atom.
422
742
423#### Produces
743#### Produces
424
744
425−A boolean.
745+A `?`.
426
746
427#### Source
747#### Source
428
748
429```hoon
749```hoon
430− ++ sane :: atom sanity
750+++ sane
431− |= a/@ta
751+ |= a=@ta
432− |= b/@ ^- ?
752+ |= b=@ ^- ?
433− ?. =(%t (end 3 1 a))
753+ ?. =(%t (end 3 a))
434− ~|(%sane-stub !!)
754+ :: XX more and better sanity
755+ ::
756+ &
435− =+ [inx=0 len=(met 3 b)]
757+ =+ [inx=0 len=(met 3 b)]
436− ?: =(%tas a)
758+ ?: =(%tas a)
437− |- ^- ?
759+ |- ^- ?
438− ?: =(inx len) &
760+ ?: =(inx len) &
439− =+ cur=(cut 3 [inx 1] b)
761+ =+ cur=(cut 3 [inx 1] b)
440− ?& ?| &((gte cur 'a') (lte cur 'z'))
762+ ?& ?| &((gte cur 'a') (lte cur 'z'))
441− &(=('-' cur) !=(0 inx) !=(len inx))
763+ &(=('-' cur) !=(0 inx) !=(len inx))
442− &(&((gte cur '0') (lte cur '9')) !=(0 inx))
764+ &(&((gte cur '0') (lte cur '9')) !=(0 inx))
443− ==
444− $(inx +(inx))
445 ==
765 ==
766+ $(inx +(inx))
767+ ==
446− ?: =(%ta a)
768+ ?: =(%ta a)
447− |- ^- ?
769+ |- ^- ?
448− ?: =(inx len) &
770+ ?: =(inx len) &
449− =+ cur=(cut 3 [inx 1] b)
771+ =+ cur=(cut 3 [inx 1] b)
450− ?& ?| &((gte cur 'a') (lte cur 'z'))
772+ ?& ?| &((gte cur 'a') (lte cur 'z'))
451− &((gte cur '0') (lte cur '9'))
773+ &((gte cur '0') (lte cur '9'))
452− |(=('-' cur) =('~' cur) =('_' cur) =('.' cur))
774+ |(=('-' cur) =('~' cur) =('_' cur) =('.' cur))
453− ==
454− $(inx +(inx))
455 ==
775 ==
776+ $(inx +(inx))
777+ ==
456− |- ^- ?
778+ |- ^- ?
457− ?: =(0 b) &
779+ ?: =(0 b) &
458− =+ cur=(end 3 1 b)
780+ =+ cur=(end 3 b)
459− ?: &((lth cur 32) !=(10 cur)) |
781+ ?: &((lth cur 32) !=(10 cur)) |
460− =+ len=(teff cur)
782+ =+ len=(teff cur)
461− ?& |(=(1 len) =+(i=1 |-(|(=(i len) &((gte (cut 3 [i 1] b) 128) $(i +(i)))))))
783+ ?& |(=(1 len) =+(i=1 |-(|(=(i len) &((gte (cut 3 [i 1] b) 128) $(i +(i)))))))
462− $(b (rsh 3 len b))
784+ $(b (rsh [3 len] b))
463− ==
785+ ==
464− ::
465```
786```
466
787
467#### Examples
788#### Examples
468
789
469```
790```
470− > ((sane %tas) %mol)
791+> ((sane %tas) %mol)
471− %.y
792+%.y
793+
472− > ((sane %tas) 'lam')
794+> ((sane %tas) 'lam')
473− %.y
795+%.y
796+
474− > ((sane %tas) 'more ace')
797+> ((sane %tas) 'more ace')
475− %.n
798+%.n
476```
799```
477
800
478---
801---
479
802
480−## `++teff`
803+## `++taft`
481
804
482−UTF8 Length
805+UTF8 to UTF32
483
806
484−Produces the number of utf8 bytes.
807+Convert `cord` `a` to a UTF32 `@c`.
485
808
486#### Accepts
809#### Accepts
487
810
@@ -489,352 +812,354 @@ Produces the number of utf8 bytes.
489
812
490#### Produces
813#### Produces
491
814
492−An atom.
815+A `@c`.
493
816
494#### Source
817#### Source
495
818
496```hoon
819```hoon
820+++ taft
497− |= a/@t ^- @
821+ |= a=@t
822+ ^- @c
823+ %+ rap 5
824+ |- ^- (list @c)
825+ =+ b=(teff a)
826+ ?: =(0 b) ~
827+ =+ ^= c
828+ %+ can 0
829+ %+ turn
830+ ^- (list [p=@ q=@])
831+ ?+ b !!
832+ %1 [[0 7] ~]
833+ %2 [[8 6] [0 5] ~]
834+ %3 [[16 6] [8 6] [0 4] ~]
835+ %4 [[24 6] [16 6] [8 6] [0 3] ~]
836+ ==
837+ |=([p=@ q=@] [q (cut 0 [p q] a)])
498− =+ b=(end 3 1 a)
838+ ?> =((tuft c) (end [3 b] a))
499− ~| %bad-utf8
839+ [c $(a (rsh [3 b] a))]
500− ?: =(0 b)
501− ?>(=(`@`0 a) 0)
502− ?> |((gte b 32) =(10 b))
503− ?:((lte b 127) 1 ?:((lte b 223) 2 ?:((lte b 239) 3 4)))
504```
840```
505
841
506#### Examples
842#### Examples
507
843
508```
844```
509− > (teff 'a')
845+> (taft 'foobar')
510− 1
846+~-foobar
511− > (teff 'ß')
847+
512− 2
848+> `@ux`'foobar'
849+0x7261.626f.6f66
850+
851+> `@ux`~-foobar
852+0x72.0000.0061.0000.0062.0000.006f.0000.006f.0000.0066
513```
853```
514
854
515---
855---
516
856
517−## `++trim`
857+## `++teff`
518
858
519−Tape split
859+UTF8 Length
520
860
521−Split first `a` characters off `++tape` `b`.
861+Produces the number of utf8 bytes of `a`, a single `@t` character. If `a`
862+contains more than one character, it will produce the byte-length of the first
863+one.
522
864
523#### Accepts
865#### Accepts
524
866
525−`a` is an atom.
867+`a` is a `@t`.
526−
527−`b` is a `++tape`.
528
868
529#### Produces
869#### Produces
530
870
531−A cell of `++tape`s, `p` and `q`.
871+An atom.
532
872
533#### Source
873#### Source
534
874
535```hoon
875```hoon
536− ++ trim :: 31-bit nonzero
876+++ teff
537− |= key/@
538− =+ syd=0xcafe.babe
539− |- ^- @
877+ |= a=@t ^- @
540− =+ haz=(spec syd key)
878+ =+ b=(end 3 a)
541− =+ ham=(mix (rsh 0 31 haz) (end 0 31 haz))
879+ ?: =(0 b)
542− ?.(=(0 ham) ham $(syd +(syd)))
880+ ?>(=(`@`0 a) 0)
543− --
881+ ?> |((gte b 32) =(10 b))
544− ::
882+ ?:((lte b 127) 1 ?:((lte b 223) 2 ?:((lte b 239) 3 4)))
545```
883```
546
884
547#### Examples
885#### Examples
548
886
549```
887```
550− > (trim 5 "lasok termun")
888+> (teff 'a')
551− [p="lasok" q=" termun"]
889+1
552− > (trim 5 "zam")
890+
553− [p="zam" q=""]
891+> (teff 'ß')
892+2
893+
894+> (teff 'aß')
895+1
554```
896```
555
897
556---
898---
557
899
558−## `++trip`
900+## `++trim`
559
901
560−Cord to tape
902+Tape split
561
903
562−Produce a `++tape` from `++cord`.
904+Split first `a` characters off `tape` `b`.
563
905
564#### Accepts
906#### Accepts
565
907
566`a` is an atom.
908`a` is an atom.
567
909
910+`b` is a `tape`.
911+
568#### Produces
912#### Produces
569
913
570−A `++tape`.
914+A cell of `tape`s, `p` and `q`.
571
915
572#### Source
916#### Source
573
917
574```hoon
918```hoon
575− ++ trip :: cord to tape
919+++ trim
576− ~/ %trip
920+ |= [a=@ b=tape]
577− |= a/@ ^- tape
921+ ^- [p=tape q=tape]
922+ ?~ b
923+ [~ ~]
578− ?: =(0 (met 3 a))
924+ ?: =(0 a)
579− ~
925+ [~ b]
580− [^-(@ta (end 3 1 a)) $(a (rsh 3 1 a))]
926+ =+ c=$(a (dec a), b t.b)
581− ::
927+ [[i.b p.c] q.c]
582```
928```
583
929
584#### Examples
930#### Examples
585
931
586```
932```
587− > (trip 'john doe')
933+> (trim 5 "lasok termun")
588− "john doe"
934+[p="lasok" q=" termun"]
589− > (trip 'abc 123 !@#')
935+
590− "abc 123 !@#"
936+> (trim 5 "zam")
591− > (trip 'abc')
937+[p="zam" q=""]
592− "abc"
593```
938```
594
939
595---
940---
596
941
597−## `++tuba`
942+## `++trip`
598
943
599−UTF8 to UTF32 tape
944+Cord to tape
600
945
601−Convert `++tape` to a `++list` of codepoints (`@c`).
946+Produce a `tape` from `cord` `a`.
602
947
603#### Accepts
948#### Accepts
604
949
605−`a` is a `++tape`.
950+`a` is an atom.
606
951
607#### Produces
952#### Produces
608
953
609−A `++list` of codepoints `@c`.
954+A `tape`.
610
955
611#### Source
956#### Source
612
957
613```hoon
958```hoon
614− ++ tuba :: utf8 to utf32 tape
959+++ trip
960+ ~/ %trip
615− |= a/tape
961+ |= a=@ ^- tape
616− ^- (list @c)
962+ ?: =(0 (met 3 a))
617− (rip 5 (turf (rap 3 a))) :: XX horrible
963+ ~
618− ::
964+ [^-(@ta (end 3 a)) $(a (rsh 3 a))]
619```
965```
620
966
621#### Examples
967#### Examples
622
968
623```
969```
624− > (tuba "я тут")
970+> (trip 'john doe')
625− ~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.]
971+"john doe"
626− > (tuba "chars")
972+
627− ~[~-c ~-h ~-a ~-r ~-s]
973+> (trip 'abc 123 !@#')
974+"abc 123 !@#"
975+
976+> (trip 'abc')
977+"abc"
628```
978```
629
979
630---
980---
631
981
632−## `++tufa`
982+## `++tuba`
633
983
634−UTF32 to UTF8 tape
984+UTF8 tape to UTF32 tape
635
985
636−Wrap a `++list` of utf32 codepoints into a utf8 `++tape`.
986+Convert `tape` to a `list` of codepoints (`@c`).
637
987
638#### Accepts
988#### Accepts
639
989
640−`a` is a `++list` of `@c`.
990+`a` is a `tape`.
641
991
642#### Produces
992#### Produces
643
993
644−A `++tape`.
994+A `(list @c)`.
645
995
646#### Source
996#### Source
647
997
648```hoon
998```hoon
649− ++ tufa :: utf32 to utf8 tape
999+++ tuba
1000+ |= a=tape
650− |= a=(list @c)
1001+ ^- (list @c)
651− ^- tape
1002+ (rip 5 (taft (rap 3 a)))
652− ?~ a ""
653− (weld (rip 3 (tuft i.a)) $(a t.a))
654− ::
655```
1003```
656
1004
657#### Examples
1005#### Examples
658
1006
659−```hoon
1007+```
660− > (tufa ~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.])
661− "я тут"
1008+> (tuba "я тут")
662− > (tufa ((list @c) ~[%a %b 0xb1 %c]))
1009+~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.]
663− "ab±c"
1010+
1011+> (tuba "chars")
1012+~[~-c ~-h ~-a ~-r ~-s]
664```
1013```
665
1014
666---
1015---
667
1016
668−## `++tuft`
1017+## `++tufa`
669
1018
670−UTF32 to UTF8 text
1019+UTF32 to UTF8 tape
671
1020
672−Convert utf32 glyph to
1021+Wrap a `list` of utf32 codepoints into a utf8 `tape`.
673−LSB utf8 `++cord`.
674
1022
675#### Accepts
1023#### Accepts
676
1024
677−`a` is a codepoint (`@c`).
1025+`a` is a `(list @c)`.
678
1026
679#### Produces
1027#### Produces
680
1028
681−A `++cord`.
1029+A `tape`.
682
1030
683#### Source
1031#### Source
684
1032
685```hoon
1033```hoon
686− ++ tuft :: utf32 to utf8 text
1034+++ tufa
687− |= a/@c
688− ^- @t
689− %+ rap 3
690− |- ^- (list @)
1035+ |= a=(list @c)
1036+ ^- tape
691− ?: =(`@`0 a)
1037+ ?~ a ""
692− ~
1038+ (weld (rip 3 (tuft i.a)) $(a t.a))
693− =+ b=(end 5 1 a)
694− =+ c=$(a (rsh 5 1 a))
695− ?: (lte b 0x7f)
696− [b c]
697− ?: (lte b 0x7ff)
698− :* (mix 0b1100.0000 (cut 0 [6 5] b))
699− (mix 0b1000.0000 (end 0 6 b))
700− c
701− ==
702− ?: (lte b 0xffff)
703− :* (mix 0b1110.0000 (cut 0 [12 4] b))
704− (mix 0b1000.0000 (cut 0 [6 6] b))
705− (mix 0b1000.0000 (end 0 6 b))
706− c
707− ==
708− :* (mix 0b1111.0000 (cut 0 [18 3] b))
709− (mix 0b1000.0000 (cut 0 [12 6] b))
710− (mix 0b1000.0000 (cut 0 [6 6] b))
711− (mix 0b1000.0000 (end 0 6 b))
712− c
713− ==
714```
1039```
715
1040
716#### Examples
1041#### Examples
717
1042
718```
1043```
719− > (tuft `@c`%a)
1044+> (tufa ~[~-~44f. ~-. ~-~442. ~-~443. ~-~442.])
720− 'a'
1045+"я тут"
721− > (tuft `@c`0xb6)
1046+
722− '¶'
1047+> (tufa ((list @c) ~[%a %b 0xb1 %c]))
1048+"ab±c"
723```
1049```
724
1050
725---
1051---
726
1052
727−## `++turf`
1053+## `++tuft`
728
1054
729−UTF8 to UTF32 cord
1055+UTF32 to UTF8
730
1056
731−Convert utf8 (`++cord`) to utf32 codepoints.
1057+Convert `@c` to `cord`.
732
1058
733#### Accepts
1059#### Accepts
734
1060
735−`a` is a `@t`.
1061+`a` is a `@c`.
736
1062
737#### Produces
1063#### Produces
738
1064
739−A `@c`, UTF-32 codepoint.
1065+A `cord`.
740
1066
741#### Source
1067#### Source
742
1068
743```hoon
1069```hoon
744− ++ turf :: utf8 to utf32
1070+++ tuft
1071+ |= a=@c
745− |= a/@t
1072+ ^- @t
746− ^- @c
747− %+ rap 5
1073+ %+ rap 3
748− |- ^- (list @c)
1074+ |- ^- (list @)
749− =+ b=(teff a)
1075+ ?: =(`@`0 a)
750− ?: =(0 b) ~
1076+ ~
751− =+ ^= c
1077+ =+ b=(end 5 a)
752− %+ can 0
753− %+ turn
754− ^- (list {p/@ q/@})
755− ?+ b !!
756− $1 [[0 7] ~]
757− $2 [[8 6] [0 5] ~]
758− $3 [[16 6] [8 6] [0 4] ~]
759− $4 [[24 6] [16 6] [8 6] [0 3] ~]
760− ==
761− |=({p/@ q/@} [q (cut 0 [p q] a)])
762− ?. =((tuft c) (end 3 b a)) ~|(%bad-utf8 !!)
763− [c $(a (rsh 3 b a))]
1078+ =+ c=$(a (rsh 5 a))
764− ::
1079+ ?: (lte b 0x7f)
1080+ [b c]
1081+ ?: (lte b 0x7ff)
1082+ :* (mix 0b1100.0000 (cut 0 [6 5] b))
1083+ (mix 0b1000.0000 (end [0 6] b))
1084+ c
1085+ ==
1086+ ?: (lte b 0xffff)
1087+ :* (mix 0b1110.0000 (cut 0 [12 4] b))
1088+ (mix 0b1000.0000 (cut 0 [6 6] b))
1089+ (mix 0b1000.0000 (end [0 6] b))
1090+ c
1091+ ==
1092+ :* (mix 0b1111.0000 (cut 0 [18 3] b))
1093+ (mix 0b1000.0000 (cut 0 [12 6] b))
1094+ (mix 0b1000.0000 (cut 0 [6 6] b))
1095+ (mix 0b1000.0000 (end [0 6] b))
1096+ c
1097+ ==
765```
1098```
766
1099
767#### Examples
1100#### Examples
768
1101
769```
1102```
770− > (turf 'my ßam')
1103+> (tuft ~-foobar)
771− ~-my.~df.am
1104+'foobar'
772− > 'я тут'
1105+
773− 'я тут'
1106+> `@ux`~-foobar
774− > (turf 'я тут')
1107+0x72.0000.0061.0000.0062.0000.006f.0000.006f.0000.0066
775− ~-~44f..~442.~443.~442.
1108+
776− > `@ux`'я тут'
1109+> `@ux`'foobar'
777− 0x82.d183.d182.d120.8fd1
1110+0x7261.626f.6f66
778− > `@ux`(turf 'я тут')
779− 0x442.0000.0443.0000.0442.0000.0020.0000.044f
780```
1111```
781
1112
782---
1113---
783
1114
784## `++wack`
1115## `++wack`
785
1116
786−Coin format encode
1117+Knot escape
787
1118
788−Escape `++span` `~` as `~~` and `_` as `~-`. Used for printing.
1119+Escape `knot` `~` as `~~` and `_` as `~-`. Used for printing.
789
1120
790#### Accepts
1121#### Accepts
791
1122
792−`a` is a `++span` (`@ta`).
1123+`a` is a `knot`.
793
1124
794#### Produces
1125#### Produces
795
1126
796−A `++span` (`@ta`).
1127+A `knot`.
797
1128
798#### Source
1129#### Source
799
1130
800```hoon
1131```hoon
801− ++ wack :: coin format
1132+++ wack
802− |= a/@ta
1133+ |= a=@ta
803− ^- @ta
1134+ ^- @ta
804− =+ b=(rip 3 a)
1135+ =+ b=(rip 3 a)
805− %+ rap 3
1136+ %+ rap 3
806− |- ^- tape
1137+ |- ^- tape
807− ?~ b
1138+ ?~ b
808− ~
1139+ ~
809− ?: =('~' i.b) ['~' '~' $(b t.b)]
1140+ ?: =('~' i.b) ['~' '~' $(b t.b)]
810− ?: =('_' i.b) ['~' '-' $(b t.b)]
1141+ ?: =('_' i.b) ['~' '-' $(b t.b)]
811− [i.b $(b t.b)]
1142+ [i.b $(b t.b)]
812− ::
813```
1143```
814
1144
815#### Examples
1145#### Examples
816
1146
817```
1147```
818− > (wack '~20_sam~')
1148+> (wack '~20_sam~')
819− ~.~~20~-sam~~
1149+~.~~20~-sam~~
820−
821− > `@t`(wack '~20_sam~')
822− '~~20~-sam~~'
823
1150
824− > ~(rend co %many ~[`ud/5 `ta/'~20_sam'])
1151+> `@t`(wack '~20_sam~')
825− "._5_~~.~~20~-sam__"
1152+'~~20~-sam~~'
826−
827− > ._5_~~.~~20~-sam__
828− [5 ~.~20_sam]
829```
1153```
830
1154
831---
1155---
832
1156
833## `++wick`
1157## `++wick`
834
1158
835−Coin format decode
1159+Knot unescape
836
1160
837−Unescape `++span` `~~` as `~` and `~-` as `_`.
1161+Unescape `knot` `~~` as `~` and `~-` as `_`. Produces a `unit`, which is null if
1162+the `knot` contains unescaped `~` characters.
838
1163
839#### Accepts
1164#### Accepts
840
1165
@@ -842,38 +1167,37 @@ Unescape `++span` `~~` as `~` and `~-` as `_`.
842
1167
843#### Produces
1168#### Produces
844
1169
845−A `++span` `@ta`.
1170+A `(unit @ta)`.
846
1171
847#### Source
1172#### Source
848
1173
849```hoon
1174```hoon
850− ++ wick :: knot format
1175+++ wick
851− |= a/@
1176+ |= a=@
852− ^- (unit @ta)
1177+ ^- (unit @ta)
853− =+ b=(rip 3 a)
1178+ =+ b=(rip 3 a)
854− =- ?^(b ~ (some (rap 3 (flop c))))
1179+ =- ?^(b ~ (some (rap 3 (flop c))))
855− =| c/tape
1180+ =| c=tape
856− |- ^- {b/tape c/tape}
1181+ |- ^- [b=tape c=tape]
857− ?~ b [~ c]
1182+ ?~ b [~ c]
858− ?. =('~' i.b)
1183+ ?. =('~' i.b)
859− $(b t.b, c [i.b c])
1184+ $(b t.b, c [i.b c])
860− ?~ t.b [b ~]
1185+ ?~ t.b [b ~]
861− ?- i.t.b
1186+ ?- i.t.b
862− $'~' $(b t.t.b, c ['~' c])
1187+ %'~' $(b t.t.b, c ['~' c])
863− $'-' $(b t.t.b, c ['_' c])
1188+ %'-' $(b t.t.b, c ['_' c])
864− @ [b ~]
1189+ @ [b ~]
865− ==
1190+ ==
866− ::
867```
1191```
868
1192
869#### Examples
1193#### Examples
870
1194
871```
1195```
872− > `@t`(wick '~-ams~~lop')
1196+> (wick ~.~~20~-sam~~)
873− '_ams~lop'
1197+[~ ~.~20_sam~]
874
1198
875− > `@t`(wick (wack '~20_sam~'))
1199+> (wick ~.~20~-sam~~)
876− '~20_sam~'
1200+~
877```
1201```
878
1202
879---
1203---
@@ -882,7 +1206,7 @@ A `++span` `@ta`.
882
1206
883Unescape cord
1207Unescape cord
884
1208
885−Unescape `++cord` codepoints.
1209+Unescape `knot`-encoded `cord`.
886
1210
887#### Accepts
1211#### Accepts
888
1212
@@ -890,51 +1214,50 @@ Unescape `++cord` codepoints.
890
1214
891#### Produces
1215#### Produces
892
1216
893−A `++cord`.
1217+A `cord`.
894
1218
895#### Source
1219#### Source
896
1220
897```hoon
1221```hoon
898− ++ woad :: cord format
1222+++ woad
899− |= a/@ta
1223+ |= a=@ta
900− ^- @t
1224+ ^- @t
901− %+ rap 3
1225+ %+ rap 3
902− |- ^- (list @)
1226+ |- ^- (list @)
903− ?: =(`@`0 a)
1227+ ?: =(`@`0 a)
904− ~
1228+ ~
905− =+ b=(end 3 1 a)
1229+ =+ b=(end 3 a)
906− =+ c=(rsh 3 1 a)
1230+ =+ c=(rsh 3 a)
907− ?: =('.' b)
1231+ ?: =('.' b)
908− [' ' $(a c)]
1232+ [' ' $(a c)]
909− ?. =('~' b)
1233+ ?. =('~' b)
910− [b $(a c)]
1234+ [b $(a c)]
911− => .(b (end 3 1 c), c (rsh 3 1 c))
1235+ => .(b (end 3 c), c (rsh 3 c))
912− ?+ b =- (weld (rip 3 (tuft p.d)) $(a q.d))
1236+ ?+ b =- (weld (rip 3 (tuft p.d)) $(a q.d))
913− ^= d
1237+ ^= d
914− =+ d=0
1238+ =+ d=0
915− |- ^- {p/@ q/@}
1239+ |- ^- [p=@ q=@]
916− ?: =('.' b)
1240+ ?: =('.' b)
917− [d c]
1241+ [d c]
918− ?< =(0 c)
1242+ ?< =(0 c)
919− %= $
1243+ %= $
920− b (end 3 1 c)
1244+ b (end 3 c)
921− c (rsh 3 1 c)
1245+ c (rsh 3 c)
922− d %+ add (mul 16 d)
1246+ d %+ add (mul 16 d)
923− %+ sub b
1247+ %+ sub b
924− ?: &((gte b '0') (lte b '9')) 48
1248+ ?: &((gte b '0') (lte b '9')) 48
925− ?>(&((gte b 'a') (lte b 'z')) 87)
1249+ ?>(&((gte b 'a') (lte b 'z')) 87)
926− ==
1250+ ==
927− $'.' ['.' $(a c)]
1251+ %'.' ['.' $(a c)]
928− $'~' ['~' $(a c)]
1252+ %'~' ['~' $(a c)]
929− ==
1253+ ==
930− ::
931```
1254```
932
1255
933#### Examples
1256#### Examples
934
1257
935```
1258```
936− > (woad ~.~b6.20.as)
1259+> (woad ~.foo.bar~21.)
937− '¶20 as'
1260+'foo bar!'
938```
1261```
939
1262
940---
1263---
@@ -943,51 +1266,55 @@ A `++cord`.
943
1266
944Escape cord
1267Escape cord
945
1268
946−Escape `++cord` codepoints.
1269+Escape `cord` `a` so it can be encoded in a `knot`.
947
1270
948#### Accepts
1271#### Accepts
949
1272
950−`a` is a `++span` (`@ta`).
1273+`a` is a `cord`.
951
1274
952#### Produces
1275#### Produces
953
1276
954−A `++span` (`@ta`).
1277+A `knot`.
955
1278
956#### Source
1279#### Source
957
1280
958```hoon
1281```hoon
959− ++ wood :: cord format
1282+++ wood
960− |= a/@t
1283+ |= a=@t
961− ^- @ta
1284+ ^- @ta
962− %+ rap 3
1285+ %+ rap 3
963− |- ^- (list @)
1286+ |- ^- (list @)
964− ?: =(`@`0 a)
1287+ ?: =(`@`0 a)
965− ~
1288+ ~
966− =+ b=(teff a)
1289+ =+ b=(teff a)
967− =+ c=(turf (end 3 b a))
1290+ =+ c=(taft (end [3 b] a))
968− =+ d=$(a (rsh 3 b a))
1291+ =+ d=$(a (rsh [3 b] a))
969− ?: ?| &((gte c 'a') (lte c 'z'))
1292+ ?: ?| &((gte c 'a') (lte c 'z'))
970− &((gte c '0') (lte c '9'))
1293+ &((gte c '0') (lte c '9'))
971− =(`@`'-' c)
1294+ =(`@`'-' c)
972− ==
1295+ ==
973− [c d]
1296+ [c d]
974− ?+ c
1297+ ?+ c
975− :- '~'
1298+ :- '~'
976− =+ e=(met 2 c)
1299+ =+ e=(met 2 c)
977− |- ^- tape
1300+ |- ^- tape
978− ?: =(0 e)
1301+ ?: =(0 e)
979− ['.' d]
1302+ ['.' d]
980− =. e (dec e)
1303+ =. e (dec e)
981− =+ f=(rsh 2 e c)
1304+ =+ f=(rsh [2 e] c)
982− [(add ?:((lte f 9) 48 87) f) $(c (end 2 e c))]
1305+ [(add ?:((lte f 9) 48 87) f) $(c (end [2 e] c))]
983− ::
1306+ ::
1307+ %' ' ['.' d]
1308+ %'.' ['~' '.' d]
1309+ %'~' ['~' '~' d]
1310+ ==
984```
1311```
985
1312
986#### Examples
1313#### Examples
987
1314
988```
1315```
989− > (wood 'my ßam')
1316+> (wood 'foo bar!')
990− ~.my.~df.am
1317+~.foo.bar~21.
991```
1318```
992
1319
993---
1320---
content/docs/hoon/reference/stdlib/table-of-contents.md+44−32
@@ -40,7 +40,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
40<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#aptby' title="Check correctness (map)"><code>++apt:by</code></a>
40<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#aptby' title="Check correctness (map)"><code>++apt:by</code></a>
41<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#aptin' title="Check correctness (set)"><code>++apt:in</code></a>
41<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#aptin' title="Check correctness (set)"><code>++apt:in</code></a>
42<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#aptto' title="Check correctness of queue"><code>++apt:to</code></a>
42<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#aptto' title="Check correctness of queue"><code>++apt:to</code></a>
43−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="(Undocumented)"><code>++at</code></a>
43+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="Basic printing"><code>++at</code></a>
44<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#aura' title="'Type' of atom"><code>++aura</code></a>
44<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#aura' title="'Type' of atom"><code>++aura</code></a>
45<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#axis' title="Tree address"><code>+$axis</code></a>
45<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#axis' title="Tree address"><code>+$axis</code></a>
46
46
@@ -91,6 +91,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
91<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#cat' title="Concatenate"><code>++cat</code></a>
91<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#cat' title="Concatenate"><code>++cat</code></a>
92<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#cen' title="Parse % (cen)"><code>++cen</code></a>
92<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#cen' title="Parse % (cen)"><code>++cen</code></a>
93<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#cetyo' title="Days in a century"><code>++cet:yo</code></a>
93<a class="tooltip" href='/docs/hoon/reference/stdlib/3c/#cetyo' title="Days in a century"><code>++cet:yo</code></a>
94+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#chafa' title="Decode base58check character"><code>++cha:fa</code></a>
94<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#char' title="Character"><code>+$char</code></a>
95<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#char' title="Character"><code>+$char</code></a>
95<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#chum' title="Jet hint information"><code>++chum</code></a>
96<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#chum' title="Jet hint information"><code>++chum</code></a>
96<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#cit' title="Octal digit"><code>++cit</code></a>
97<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#cit' title="Octal digit"><code>++cit</code></a>
@@ -128,6 +129,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
128<a class="tooltip" href='/docs/hoon/reference/stdlib/2j/#delju' title="Delete (jug)"><code>++del:ju</code></a>
129<a class="tooltip" href='/docs/hoon/reference/stdlib/2j/#delju' title="Delete (jug)"><code>++del:ju</code></a>
129<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dem' title="Decimal to atom"><code>++dem</code></a>
130<a class="tooltip" href='/docs/hoon/reference/stdlib/4i/#dem' title="Decimal to atom"><code>++dem</code></a>
130<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#demag' title="Parse decmal with dots"><code>++dem:ag</code></a>
131<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#demag' title="Parse decmal with dots"><code>++dem:ag</code></a>
132+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#denfa' title="Decode base58check"><code>++den:fa</code></a>
131<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#denfl' title="Denormalizes (floating point)"><code>++den:fl</code></a>
133<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#denfl' title="Denormalizes (floating point)"><code>++den:fl</code></a>
132<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#depto' title="Maximum depth (queue)"><code>++dep:to</code></a>
134<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#depto' title="Maximum depth (queue)"><code>++dep:to</code></a>
133<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#difby' title="Difference between maps"><code>++dif:by</code></a>
135<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#difby' title="Difference between maps"><code>++dif:by</code></a>
@@ -178,6 +180,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
178<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emnfl' title="Minimum exponent"><code>++emn:fl</code></a>
180<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emnfl' title="Minimum exponent"><code>++emn:fl</code></a>
179<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emufl' title="Exact multiply"><code>++emu:fl</code></a>
181<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emufl' title="Exact multiply"><code>++emu:fl</code></a>
180<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emxfl' title="Maximum exponent"><code>++emx:fl</code></a>
182<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#emxfl' title="Maximum exponent"><code>++emx:fl</code></a>
183+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#encfa' title="Encode base58check"><code>++enc:fa</code></a>
181<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#end' title="Tail"><code>++end</code></a>
184<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#end' title="Tail"><code>++end</code></a>
182<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#equff' title="Equals (IEEE float)"><code>++equ:ff</code></a>
185<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#equff' title="Equals (IEEE float)"><code>++equ:ff</code></a>
183<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#equfl' title="Equals (signed and unsigned integer cell)"><code>++equ:fl</code></a>
186<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#equfl' title="Equals (signed and unsigned integer cell)"><code>++equ:fl</code></a>
@@ -195,6 +198,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
195
198
196### f
199### f
197
200
201+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#fa' title="base58check"><code>++fa</code></a>
198<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#fail' title="Never parse"><code>++fail</code></a>
202<a class="tooltip" href='/docs/hoon/reference/stdlib/4e/#fail' title="Never parse"><code>++fail</code></a>
199<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#fall' title="Give unit a default value"><code>++fall</code></a>
203<a class="tooltip" href='/docs/hoon/reference/stdlib/2a/#fall' title="Give unit a default value"><code>++fall</code></a>
200<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#fand' title="All indices in list"><code>++fand</code></a>
204<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#fand' title="All indices in list"><code>++fand</code></a>
@@ -455,6 +459,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
455### p
459### p
456
460
457<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#paff' title="Initialize fl from ff core"><code>++pa:ff</code></a>
461<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#paff' title="Initialize fl from ff core"><code>++pa:ff</code></a>
462+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#padfa' title="base58check padding bytes"><code>++pad:fa</code></a>
458<a class="tooltip" href='/docs/hoon/reference/stdlib/1c/#pair' title="Mold of pair of types"><code>++pair</code></a>
463<a class="tooltip" href='/docs/hoon/reference/stdlib/1c/#pair' title="Mold of pair of types"><code>++pair</code></a>
459<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pam' title="Parse & (pam)"><code>++pam</code></a>
464<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pam' title="Parse & (pam)"><code>++pam</code></a>
460<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
465<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#pat' title="Parse @ (pat)"><code>++pat</code></a>
@@ -499,7 +504,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
499
504
500### r
505### r
501
506
502−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="(Undocumented)"><code>++r:at</code></a>
507+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="Print term, number or hex"><code>++r:at</code></a>
503<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#radog' title="Random in range"><code>++rad:og</code></a>
508<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#radog' title="Random in range"><code>++rad:og</code></a>
504<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#radsog' title="Random continuation"><code>++rads:og</code></a>
509<a class="tooltip" href='/docs/hoon/reference/stdlib/3d/#radsog' title="Random continuation"><code>++rads:og</code></a>
505<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#rakuob' title="Key list"><code>++raku:ob</code></a>
510<a class="tooltip" href='/docs/hoon/reference/stdlib/3f/#rakuob' title="Key list"><code>++raku:ob</code></a>
@@ -521,11 +526,11 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
521<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#repby' title="Reduce to product (map)"><code>++rep:by</code></a>
526<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#repby' title="Reduce to product (map)"><code>++rep:by</code></a>
522<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#repin' title="Accumulate elements (set)"><code>++rep:in</code></a>
527<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#repin' title="Accumulate elements (set)"><code>++rep:in</code></a>
523<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rev' title="Reverse"><code>++rev</code></a>
528<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rev' title="Reverse"><code>++rev</code></a>
524−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="(Undocumented)"><code>++rf:at</code></a>
529+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="Print loobean"><code>++rf:at</code></a>
525<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#ribby' title="Transform + product (map)"><code>++rib:by</code></a>
530<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#ribby' title="Transform + product (map)"><code>++rib:by</code></a>
526<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#rigre' title="Wrap tape in / (tank)"><code>++rig:re</code></a>
531<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#rigre' title="Wrap tape in / (tank)"><code>++rig:re</code></a>
527<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rip' title="Disassemble"><code>++rip</code></a>
532<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rip' title="Disassemble"><code>++rip</code></a>
528−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="(Undocumented)"><code>++rn:at</code></a>
533+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="Print null"><code>++rn:at</code></a>
529<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rolfe' title="Roll left"><code>++rol:fe</code></a>
534<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rolfe' title="Roll left"><code>++rol:fe</code></a>
530<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#roll' title="Left fold (list)"><code>++roll</code></a>
535<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#roll' title="Left fold (list)"><code>++roll</code></a>
531<code>++rood</code>
536<code>++rood</code>
@@ -534,23 +539,23 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
534<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
539<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylso' title="Parse dime float"><code>++royl:so</code></a>
535<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
540<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#roylcellso' title="(Undocumented)"><code>++roylcell:so</code></a>
536<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rsh' title="Rightshift"><code>++rsh</code></a>
541<a class="tooltip" href='/docs/hoon/reference/stdlib/2c/#rsh' title="Rightshift"><code>++rsh</code></a>
537−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="(Undocumented)"><code>++rt:at</code></a>
542+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="Print cord, including escape characters"><code>++rt:at</code></a>
538−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="(Undocumented)"><code>++rta:at</code></a>
543+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="Print cord, including escape characters"><code>++rta:at</code></a>
539−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="(Undocumented)"><code>++rtam:at</code></a>
544+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="Print cord with @tas syntax"><code>++rtam:at</code></a>
540<a class="tooltip" href='/docs/hoon/reference/stdlib/2p/#rub' title="Lengthdecode"><code>++rub</code></a>
545<a class="tooltip" href='/docs/hoon/reference/stdlib/2p/#rub' title="Lengthdecode"><code>++rub</code></a>
541−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="(Undocumented)"><code>++rub:at</code></a>
546+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="Print binary"><code>++rub:at</code></a>
542−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="(Undocumented)"><code>++rud:at</code></a>
547+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="Print atom as integer"><code>++rud:at</code></a>
543<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#rule' title="Parsing rule (match this with _)"><code>+$rule</code></a>
548<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#rule' title="Parsing rule (match this with _)"><code>+$rule</code></a>
544−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="(Undocumented)"><code>++rum:at</code></a>
549+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="Print base-n"><code>++rum:at</code></a>
545<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#runby' title="Transform values (map)"><code>++run:by</code></a>
550<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#runby' title="Transform values (map)"><code>++run:by</code></a>
546<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#runin' title="Apply gate to set"><code>++run:in</code></a>
551<a class="tooltip" href='/docs/hoon/reference/stdlib/2h/#runin' title="Apply gate to set"><code>++run:in</code></a>
547<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#runt' title="Prepend n times"><code>++runt</code></a>
552<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#runt' title="Prepend n times"><code>++runt</code></a>
548−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="(Undocumented)"><code>++rup:at</code></a>
553+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="Print @p (outdated)"><code>++rup:at</code></a>
549<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rush' title="Parse or null"><code>++rush</code></a>
554<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rush' title="Parse or null"><code>++rush</code></a>
550<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rust' title="Parse tape or null"><code>++rust</code></a>
555<a class="tooltip" href='/docs/hoon/reference/stdlib/4g/#rust' title="Parse tape or null"><code>++rust</code></a>
551<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#rutby' title="Transform nodes (map)"><code>++rut:by</code></a>
556<a class="tooltip" href='/docs/hoon/reference/stdlib/2i/#rutby' title="Transform nodes (map)"><code>++rut:by</code></a>
552−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="(Undocumented)"><code>++ruv:at</code></a>
557+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="Print base-64"><code>++ruv:at</code></a>
553−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="(Undocumented)"><code>++rux:at</code></a>
558+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="Print hexadecimal"><code>++rux:at</code></a>
554
559
555### s
560### s
556
561
@@ -692,6 +697,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
692
697
693### t
698### t
694
699
700+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#taft' title="UTF8 to UTF32 cord"><code>++taft</code></a>
695<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#tail' title="Get tail of cell"><code>++tail</code></a>
701<a class="tooltip" href='/docs/hoon/reference/stdlib/2n/#tail' title="Get tail of cell"><code>++tail</code></a>
696<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#tapto' title="Queue to list"><code>++tap:to</code></a>
702<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#tapto' title="Queue to list"><code>++tap:to</code></a>
697<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tar' title="Parse * (tar)"><code>++tar</code></a>
703<a class="tooltip" href='/docs/hoon/reference/stdlib/4h/#tar' title="Parse * (tar)"><code>++tar</code></a>
@@ -724,6 +730,7 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
724<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#toirs' title="Round singleprecision float to nearest signed integer"><code>++toi:rs</code></a>
730<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#toirs' title="Round singleprecision float to nearest signed integer"><code>++toi:rs</code></a>
725<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#toirq' title="Round quadprecision float to nearest signed integer"><code>++toi:rq</code></a>
731<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#toirq' title="Round quadprecision float to nearest signed integer"><code>++toi:rq</code></a>
726<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#tojfl' title="Round unsigned and signed integer to float"><code>++toj:fl</code></a>
732<a class="tooltip" href='/docs/hoon/reference/stdlib/3b/#tojfl' title="Round unsigned and signed integer to float"><code>++toj:fl</code></a>
733+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#tokfa' title="Compute base58check checksum"><code>++tok:fa</code></a>
727<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#tone' title="Nock result (error report)"><code>+$tone</code></a>
734<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#tone' title="Nock result (error report)"><code>+$tone</code></a>
728<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#toon' title="Nock result (stack trace)"><code>+$toon</code></a>
735<a class="tooltip" href='/docs/hoon/reference/stdlib/3g/#toon' title="Nock result (stack trace)"><code>+$toon</code></a>
729<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#topto' title="Produce head of queue"><code>++top:to</code></a>
736<a class="tooltip" href='/docs/hoon/reference/stdlib/2k/#topto' title="Produce head of queue"><code>++top:to</code></a>
@@ -739,7 +746,6 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
739<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tufa' title="UTF32 to UTF8 tape"><code>++tufa</code></a>
746<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tufa' title="UTF32 to UTF8 tape"><code>++tufa</code></a>
740<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#tuna' title="XML template tree"><code>++tuna</code></a>
747<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#tuna' title="XML template tree"><code>++tuna</code></a>
741<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuft' title="UTF32 to UTF8 text"><code>++tuft</code></a>
748<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuft' title="UTF32 to UTF8 text"><code>++tuft</code></a>
742−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#turf' title="UTF8 to UTF32 cord"><code>++turf</code></a>
743<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#turn' title="Gate to list"><code>++turn</code></a>
749<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#turn' title="Gate to list"><code>++turn</code></a>
744<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#tusk' title="List of expressions"><code>++tusk</code></a>
750<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#tusk' title="List of expressions"><code>++tusk</code></a>
745<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#twidso' title="Parse coins without ~ prefix"><code>++twid:so</code></a>
751<a class="tooltip" href='/docs/hoon/reference/stdlib/4l/#twidso' title="Parse coins without ~ prefix"><code>++twid:so</code></a>
@@ -776,13 +782,13 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
776### w
782### w
777
783
778<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wne' title="Render base 64 digit"><code>++w:ne</code></a>
784<a class="tooltip" href='/docs/hoon/reference/stdlib/4j/#wne' title="Render base 64 digit"><code>++w:ne</code></a>
779−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Coin format encode"><code>++wack</code></a>
785+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Knot escape"><code>++wack</code></a>
780<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wain' title="List of cords"><code>+$wain</code></a>
786<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wain' title="List of cords"><code>+$wain</code></a>
781<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wall' title="List of list of characters"><code>+$wall</code></a>
787<a class="tooltip" href='/docs/hoon/reference/stdlib/2q/#wall' title="List of list of characters"><code>+$wall</code></a>
782<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#weld' title="Concatenate two lists"><code>++weld</code></a>
788<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#weld' title="Concatenate two lists"><code>++weld</code></a>
783<a class="tooltip" href='/docs/hoon/reference/stdlib/2m/#weldnl' title="Concatenate nullterminated nouns"><code>++weld:nl</code></a>
789<a class="tooltip" href='/docs/hoon/reference/stdlib/2m/#weldnl' title="Concatenate nullterminated nouns"><code>++weld:nl</code></a>
784<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#welp' title="Perfect concatenate (lists)"><code>++welp</code></a>
790<a class="tooltip" href='/docs/hoon/reference/stdlib/2b/#welp' title="Perfect concatenate (lists)"><code>++welp</code></a>
785−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Coin format decode"><code>++wick</code></a>
791+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Knot unescape"><code>++wick</code></a>
786<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#wigre' title="++win render tape"><code>++wig:re</code></a>
792<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#wigre' title="++win render tape"><code>++wig:re</code></a>
787<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#winre' title="Render at indent"><code>++win:re</code></a>
793<a class="tooltip" href='/docs/hoon/reference/stdlib/4c/#winre' title="Render at indent"><code>++win:re</code></a>
788<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#wing' title="Address in subject"><code>++wing</code></a>
794<a class="tooltip" href='/docs/hoon/reference/stdlib/4o/#wing' title="Address in subject"><code>++wing</code></a>
@@ -1417,22 +1423,28 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1417<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#inspo' title="Parse prefix"><code>++ins:po</code></a>
1423<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#inspo' title="Parse prefix"><code>++ins:po</code></a>
1418<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#todpo' title="Fetch suffix"><code>++tod:po</code></a>
1424<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#todpo' title="Fetch suffix"><code>++tod:po</code></a>
1419<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#tospo' title="Fetch prefix"><code>++tos:po</code></a>
1425<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#tospo' title="Fetch prefix"><code>++tos:po</code></a>
1426+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#fa' title="base58check"><code>++fa</code></a>
1427+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#chafa' title="Decode base58check character"><code>++cha:fa</code></a>
1428+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#tokfa' title="Compute base58check checksum"><code>++tok:fa</code></a>
1429+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#padfa' title="base58check padding bytes"><code>++pad:fa</code></a>
1430+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#encfa' title="Encode base58check"><code>++enc:fa</code></a>
1431+<a class="tooltip" href='/docs/hoon/reference/stdlib/4a/#denfa' title="Decode base58check"><code>++den:fa</code></a>
1420
1432
1421### 4b: text processing
1433### 4b: text processing
1422
1434
1423−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="(Undocumented)"><code>++at</code></a>
1435+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#at' title="Basic printing"><code>++at</code></a>
1424−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="(Undocumented)"><code>++r:at</code></a>
1436+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rat' title="Print term, number or hex"><code>++r:at</code></a>
1425−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="(Undocumented)"><code>++rf:at</code></a>
1437+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rfat' title="Print loobean"><code>++rf:at</code></a>
1426−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="(Undocumented)"><code>++rn:at</code></a>
1438+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rnat' title="Print null"><code>++rn:at</code></a>
1427−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="(Undocumented)"><code>++rt:at</code></a>
1439+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtat' title="Print cord, including escape characters"><code>++rt:at</code></a>
1428−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="(Undocumented)"><code>++rta:at</code></a>
1440+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtaat' title="Print cord, including escape characters"><code>++rta:at</code></a>
1429−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="(Undocumented)"><code>++rtam:at</code></a>
1441+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rtamat' title="Print cord with @tas syntax"><code>++rtam:at</code></a>
1430−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="(Undocumented)"><code>++rub:at</code></a>
1442+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rubat' title="Print binary"><code>++rub:at</code></a>
1431−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="(Undocumented)"><code>++rud:at</code></a>
1443+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rudat' title="Print atom as integer"><code>++rud:at</code></a>
1432−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="(Undocumented)"><code>++rum:at</code></a>
1444+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rumat' title="Print base-n"><code>++rum:at</code></a>
1433−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="(Undocumented)"><code>++rup:at</code></a>
1445+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#rupat' title="Print @p (outdated)"><code>++rup:at</code></a>
1434−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="(Undocumented)"><code>++ruv:at</code></a>
1446+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruvat' title="Print base-64"><code>++ruv:at</code></a>
1435−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="(Undocumented)"><code>++rux:at</code></a>
1447+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#ruxat' title="Print hexadecimal"><code>++rux:at</code></a>
1436
1448
1437<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#cass' title="To lowercase"><code>++cass</code></a>
1449<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#cass' title="To lowercase"><code>++cass</code></a>
1438<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#crip' title="Tape to cord"><code>++crip</code></a>
1450<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#crip' title="Tape to cord"><code>++crip</code></a>
@@ -1447,9 +1459,9 @@ Can be navigated [alphabetically](#alphabetical) or [by section](#by-section).
1447<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuba' title="UTF8 to UTF32 tape"><code>++tuba</code></a>
1459<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuba' title="UTF8 to UTF32 tape"><code>++tuba</code></a>
1448<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tufa' title="UTF32 to UTF8 tape"><code>++tufa</code></a>
1460<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tufa' title="UTF32 to UTF8 tape"><code>++tufa</code></a>
1449<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuft' title="UTF32 to UTF8 text"><code>++tuft</code></a>
1461<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#tuft' title="UTF32 to UTF8 text"><code>++tuft</code></a>
1450−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#turf' title="UTF8 to UTF32 cord"><code>++turf</code></a>
1462+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#taft' title="UTF8 to UTF32 cord"><code>++taft</code></a>
1451−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Coin format encode"><code>++wack</code></a>
1463+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wack' title="Knot escape"><code>++wack</code></a>
1452−<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Coin format decode"><code>++wick</code></a>
1464+<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wick' title="Knot unescape"><code>++wick</code></a>
1453<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#woad' title="Unescape cord"><code>++woad</code></a>
1465<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#woad' title="Unescape cord"><code>++woad</code></a>
1454<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wood' title="Escape cord"><code>++wood</code></a>
1466<a class="tooltip" href='/docs/hoon/reference/stdlib/4b/#wood' title="Escape cord"><code>++wood</code></a>
1455
1467
lib/glossary.js+64−22
@@ -1571,7 +1571,7 @@ export const glossary = [
1571 desc: "Used in the Hoon standard library.",
1571 desc: "Used in the Hoon standard library.",
1572 },
1572 },
1573 {
1573 {
1574− name: "(Undocumented)",
1574+ name: "Basic printing",
1575 symbol: "at",
1575 symbol: "at",
1576 usage: "stdlib",
1576 usage: "stdlib",
1577 slug: "https://urbit.org/docs/reference/library/4b/#at",
1577 slug: "https://urbit.org/docs/reference/library/4b/#at",
@@ -1885,6 +1885,13 @@ export const glossary = [
1885 slug: "https://urbit.org/docs/reference/library/3c/#cetyo",
1885 slug: "https://urbit.org/docs/reference/library/3c/#cetyo",
1886 desc: "Used in the Hoon standard library.",
1886 desc: "Used in the Hoon standard library.",
1887 },
1887 },
1888+ {
1889+ name: "Decode base58check character",
1890+ symbol: "cha:fa",
1891+ usage: "stdlib",
1892+ slug: "https://urbit.org/docs/reference/library/4a/#chafa",
1893+ desc: "Used in the Hoon standard library.",
1894+ },
1888 {
1895 {
1889 name: "Character",
1896 name: "Character",
1890 symbol: "char",
1897 symbol: "char",
@@ -2466,6 +2473,13 @@ export const glossary = [
2466 slug: "https://urbit.org/docs/reference/library/3b/#emxfl",
2473 slug: "https://urbit.org/docs/reference/library/3b/#emxfl",
2467 desc: "Used in the Hoon standard library.",
2474 desc: "Used in the Hoon standard library.",
2468 },
2475 },
2476+ {
2477+ name: "Encode base58check",
2478+ symbol: "enc:fa",
2479+ usage: "stdlib",
2480+ slug: "https://urbit.org/docs/reference/library/4a/#encfa",
2481+ desc: "Used in the Hoon standard library.",
2482+ },
2469 {
2483 {
2470 name: "Tail",
2484 name: "Tail",
2471 symbol: "end",
2485 symbol: "end",
@@ -2564,6 +2578,13 @@ export const glossary = [
2564 slug: "https://urbit.org/docs/reference/library/3b/#exprq",
2578 slug: "https://urbit.org/docs/reference/library/3b/#exprq",
2565 desc: "Used in the Hoon standard library.",
2579 desc: "Used in the Hoon standard library.",
2566 },
2580 },
2581+ {
2582+ name: "base58check",
2583+ symbol: "fa",
2584+ usage: "stdlib",
2585+ slug: "https://urbit.org/docs/reference/library/4a/#fa",
2586+ desc: "Used in the Hoon standard library.",
2587+ },
2567 {
2588 {
2568 name: "Never parse",
2589 name: "Never parse",
2569 symbol: "fail",
2590 symbol: "fail",
@@ -4448,7 +4469,7 @@ export const glossary = [
4448 desc: "Used in the Hoon standard library.",
4469 desc: "Used in the Hoon standard library.",
4449 },
4470 },
4450 {
4471 {
4451− name: "(Undocumented)",
4472+ name: "Print term, number or hex",
4452 symbol: "r:at",
4473 symbol: "r:at",
4453 usage: "stdlib",
4474 usage: "stdlib",
4454 slug: "https://urbit.org/docs/reference/library/4b/#rat",
4475 slug: "https://urbit.org/docs/reference/library/4b/#rat",
@@ -4595,7 +4616,7 @@ export const glossary = [
4595 desc: "Used in the Hoon standard library.",
4616 desc: "Used in the Hoon standard library.",
4596 },
4617 },
4597 {
4618 {
4598− name: "(Undocumented)",
4619+ name: "Print loobean",
4599 symbol: "rf:at",
4620 symbol: "rf:at",
4600 usage: "stdlib",
4621 usage: "stdlib",
4601 slug: "https://urbit.org/docs/reference/library/4b/#rfat",
4622 slug: "https://urbit.org/docs/reference/library/4b/#rfat",
@@ -4623,7 +4644,7 @@ export const glossary = [
4623 desc: "Used in the Hoon standard library.",
4644 desc: "Used in the Hoon standard library.",
4624 },
4645 },
4625 {
4646 {
4626− name: "(Undocumented)",
4647+ name: "Print null",
4627 symbol: "rn:at",
4648 symbol: "rn:at",
4628 usage: "stdlib",
4649 usage: "stdlib",
4629 slug: "https://urbit.org/docs/reference/library/4b/#rnat",
4650 slug: "https://urbit.org/docs/reference/library/4b/#rnat",
@@ -4679,21 +4700,21 @@ export const glossary = [
4679 desc: "Used in the Hoon standard library.",
4700 desc: "Used in the Hoon standard library.",
4680 },
4701 },
4681 {
4702 {
4682− name: "(Undocumented)",
4703+ name: "Print cord, including escape characters",
4683 symbol: "rt:at",
4704 symbol: "rt:at",
4684 usage: "stdlib",
4705 usage: "stdlib",
4685 slug: "https://urbit.org/docs/reference/library/4b/#rtat",
4706 slug: "https://urbit.org/docs/reference/library/4b/#rtat",
4686 desc: "Used in the Hoon standard library.",
4707 desc: "Used in the Hoon standard library.",
4687 },
4708 },
4688 {
4709 {
4689− name: "(Undocumented)",
4710+ name: "Print cord, including escape characters",
4690 symbol: "rta:at",
4711 symbol: "rta:at",
4691 usage: "stdlib",
4712 usage: "stdlib",
4692 slug: "https://urbit.org/docs/reference/library/4b/#rtaat",
4713 slug: "https://urbit.org/docs/reference/library/4b/#rtaat",
4693 desc: "Used in the Hoon standard library.",
4714 desc: "Used in the Hoon standard library.",
4694 },
4715 },
4695 {
4716 {
4696− name: "(Undocumented)",
4717+ name: "Print cord with @tas syntax",
4697 symbol: "rtam:at",
4718 symbol: "rtam:at",
4698 usage: "stdlib",
4719 usage: "stdlib",
4699 slug: "https://urbit.org/docs/reference/library/4b/#rtamat",
4720 slug: "https://urbit.org/docs/reference/library/4b/#rtamat",
@@ -4707,14 +4728,14 @@ export const glossary = [
4707 desc: "Used in the Hoon standard library.",
4728 desc: "Used in the Hoon standard library.",
4708 },
4729 },
4709 {
4730 {
4710− name: "(Undocumented)",
4731+ name: "Print binary",
4711 symbol: "rub:at",
4732 symbol: "rub:at",
4712 usage: "stdlib",
4733 usage: "stdlib",
4713 slug: "https://urbit.org/docs/reference/library/4b/#rubat",
4734 slug: "https://urbit.org/docs/reference/library/4b/#rubat",
4714 desc: "Used in the Hoon standard library.",
4735 desc: "Used in the Hoon standard library.",
4715 },
4736 },
4716 {
4737 {
4717− name: "(Undocumented)",
4738+ name: "Print atom as integer",
4718 symbol: "rud:at",
4739 symbol: "rud:at",
4719 usage: "stdlib",
4740 usage: "stdlib",
4720 slug: "https://urbit.org/docs/reference/library/4b/#rudat",
4741 slug: "https://urbit.org/docs/reference/library/4b/#rudat",
@@ -4728,7 +4749,7 @@ export const glossary = [
4728 desc: "Used in the Hoon standard library.",
4749 desc: "Used in the Hoon standard library.",
4729 },
4750 },
4730 {
4751 {
4731− name: "(Undocumented)",
4752+ name: "Print base-n",
4732 symbol: "rum:at",
4753 symbol: "rum:at",
4733 usage: "stdlib",
4754 usage: "stdlib",
4734 slug: "https://urbit.org/docs/reference/library/4b/#rumat",
4755 slug: "https://urbit.org/docs/reference/library/4b/#rumat",
@@ -4756,7 +4777,7 @@ export const glossary = [
4756 desc: "Used in the Hoon standard library.",
4777 desc: "Used in the Hoon standard library.",
4757 },
4778 },
4758 {
4779 {
4759− name: "(Undocumented)",
4780+ name: "Print @p (outdated)",
4760 symbol: "rup:at",
4781 symbol: "rup:at",
4761 usage: "stdlib",
4782 usage: "stdlib",
4762 slug: "https://urbit.org/docs/reference/library/4b/#rupat",
4783 slug: "https://urbit.org/docs/reference/library/4b/#rupat",
@@ -4784,14 +4805,14 @@ export const glossary = [
4784 desc: "Used in the Hoon standard library.",
4805 desc: "Used in the Hoon standard library.",
4785 },
4806 },
4786 {
4807 {
4787− name: "(Undocumented)",
4808+ name: "Print base-64",
4788 symbol: "ruv:at",
4809 symbol: "ruv:at",
4789 usage: "stdlib",
4810 usage: "stdlib",
4790 slug: "https://urbit.org/docs/reference/library/4b/#ruvat",
4811 slug: "https://urbit.org/docs/reference/library/4b/#ruvat",
4791 desc: "Used in the Hoon standard library.",
4812 desc: "Used in the Hoon standard library.",
4792 },
4813 },
4793 {
4814 {
4794− name: "(Undocumented)",
4815+ name: "Print hexadecimal",
4795 symbol: "rux:at",
4816 symbol: "rux:at",
4796 usage: "stdlib",
4817 usage: "stdlib",
4797 slug: "https://urbit.org/docs/reference/library/4b/#ruxat",
4818 slug: "https://urbit.org/docs/reference/library/4b/#ruxat",
@@ -5742,6 +5763,13 @@ export const glossary = [
5742 slug: "https://urbit.org/docs/reference/library/3a/#synsi",
5763 slug: "https://urbit.org/docs/reference/library/3a/#synsi",
5743 desc: "Used in the Hoon standard library.",
5764 desc: "Used in the Hoon standard library.",
5744 },
5765 },
5766+ {
5767+ name: "UTF-8 to UTF-32 cord",
5768+ symbol: "taft",
5769+ usage: "stdlib",
5770+ slug: "https://urbit.org/docs/reference/library/4b/#taft",
5771+ desc: "Used in the Hoon standard library.",
5772+ },
5745 {
5773 {
5746 name: "Get tail of cell",
5774 name: "Get tail of cell",
5747 symbol: "tail",
5775 symbol: "tail",
@@ -5966,6 +5994,13 @@ export const glossary = [
5966 slug: "https://urbit.org/docs/reference/library/3b/#tojfl",
5994 slug: "https://urbit.org/docs/reference/library/3b/#tojfl",
5967 desc: "Used in the Hoon standard library.",
5995 desc: "Used in the Hoon standard library.",
5968 },
5996 },
5997+ {
5998+ name: "Compute base58check checksum",
5999+ symbol: "tok:fa",
6000+ usage: "stdlib",
6001+ slug: "https://urbit.org/docs/reference/library/4a/#tokfa",
6002+ desc: "Used in the Hoon standard library.",
6003+ },
5969 {
6004 {
5970 name: "Nock result (error report)",
6005 name: "Nock result (error report)",
5971 symbol: "tone",
6006 symbol: "tone",
@@ -6071,13 +6106,6 @@ export const glossary = [
6071 slug: "https://urbit.org/docs/reference/library/4b/#tuft",
6106 slug: "https://urbit.org/docs/reference/library/4b/#tuft",
6072 desc: "Used in the Hoon standard library.",
6107 desc: "Used in the Hoon standard library.",
6073 },
6108 },
6074− {
6075− name: "UTF-8 to UTF-32 cord",
6076− symbol: "turf",
6077− usage: "stdlib",
6078− slug: "https://urbit.org/docs/reference/library/4b/#turf",
6079− desc: "Used in the Hoon standard library.",
6080− },
6081 {
6109 {
6082 name: "Gate to list",
6110 name: "Gate to list",
6083 symbol: "turn",
6111 symbol: "turn",
@@ -6254,7 +6282,7 @@ export const glossary = [
6254 desc: "Used in the Hoon standard library.",
6282 desc: "Used in the Hoon standard library.",
6255 },
6283 },
6256 {
6284 {
6257− name: "Coin format encode",
6285+ name: "Knot escape",
6258 symbol: "wack",
6286 symbol: "wack",
6259 usage: "stdlib",
6287 usage: "stdlib",
6260 slug: "https://urbit.org/docs/reference/library/4b/#wack",
6288 slug: "https://urbit.org/docs/reference/library/4b/#wack",
@@ -6296,7 +6324,7 @@ export const glossary = [
6296 desc: "Used in the Hoon standard library.",
6324 desc: "Used in the Hoon standard library.",
6297 },
6325 },
6298 {
6326 {
6299− name: "Coin format decode",
6327+ name: "Knot unescape",
6300 symbol: "wick",
6328 symbol: "wick",
6301 usage: "stdlib",
6329 usage: "stdlib",
6302 slug: "https://urbit.org/docs/reference/library/4b/#wick",
6330 slug: "https://urbit.org/docs/reference/library/4b/#wick",
@@ -6688,6 +6716,13 @@ export const glossary = [
6688 slug: "https://urbit.org/docs/hoon/reference/zuse/2e_2-3/#de-jsonhtml",
6716 slug: "https://urbit.org/docs/hoon/reference/zuse/2e_2-3/#de-jsonhtml",
6689 desc: "Used in the Zuse library.",
6717 desc: "Used in the Zuse library.",
6690 },
6718 },
6719+ {
6720+ name: "Decode base58check",
6721+ symbol: "den:fa",
6722+ usage: "stdlib",
6723+ slug: "https://urbit.org/docs/reference/library/4a/#denfa",
6724+ desc: "Used in the Hoon standard library.",
6725+ },
6691 {
6726 {
6692 name: "Decode json (unit): Millisecond date",
6727 name: "Decode json (unit): Millisecond date",
6693 symbol: "di:dejs-soft:format",
6728 symbol: "di:dejs-soft:format",
@@ -6912,6 +6947,13 @@ export const glossary = [
6912 slug: "https://urbit.org/docs/hoon/reference/zuse/2d_6/#oudejsformat",
6947 slug: "https://urbit.org/docs/hoon/reference/zuse/2d_6/#oudejsformat",
6913 desc: "Used in the Zuse library.",
6948 desc: "Used in the Zuse library.",
6914 },
6949 },
6950+ {
6951+ name: "base58check padding bytes",
6952+ symbol: "pad:fa",
6953+ usage: "stdlib",
6954+ slug: "https://urbit.org/docs/reference/library/4a/#padfa",
6955+ desc: "Used in the Hoon standard library.",
6956+ },
6915 {
6957 {
6916 name: "Decode json: String as path",
6958 name: "Decode json: String as path",
6917 symbol: "pa:dejs:format",
6959 symbol: "pa:dejs:format",