6# 2q: molds and mold builders
11A single character. odor `@tD` designates a single unicode byte. All
12parsers consume `++tape`s, which are lists of `++char`.
18 ++ char @tD :: UTF-8 byte
35One of Hoon's two string types (the other being `++tape`). A cord is an
36atom of UTF-8 text. `++trip` and `++crip` convert between cord and
42 ++ cord @t :: text atom (UTF-8)
47Odor `@t` designates a Unicode atom, little-endian: the first character
48in the text is the low byte.
55 > (cord 499.984.265.845)
65A boolean designating AD or BC, a year atom, a month
66atom, and a `++tarp`, which is a day atom and a time.
71 ++ date {{a/? y/@ud} m/@ud t/tarp} :: parsed date
77See also: `++year`, `++yore` `++stud`, `++dust`
79 > `date`(yore ~2014.6.6..21.09.15..0a16)
80 [[a=%.y y=2.014] m=6 t=[d=6 h=21 m=9 s=15 f=~[0xa16]]]
86 ++ tang (list tank) :: general error
95Pretty-printing structure.
97A `++tank` is one of three cases: a `%leaf`
98is simply a string; a `%palm` is XX need more information; and a `%rose` is a
99list of `++tank` delimted by the strings in `p`.
105 ++ tank $% {$leaf p/tape} :: printing formats
106 $: $palm :: backstep list
107 p/{p/tape q/tape r/tape s/tape} ::
110 $: $rose :: flat list
111 p/{p/tape q/tape r/tape} :: mid open close
119 > >(bex 20) (bex 19)<
120 [%rose p=[p=" " q="[" r="]"] q=~[[%leaf p="1.048.576"] [%leaf p="524.288"]]]
121 > (wash [0 80] >(bex 20) (bex 19)<) :: at 80 cols
122 <<"[1.048.576 524.288]">>
123 > (wash [0 15] >(bex 20) (bex 19)<) :: at 15 cols (two lines)
124 <<"[ 1.048.576" " 524.288" "]">>
126 > [(bex 150) (bex 151)] :: at 80 cols
127 [ 1.427.247.692.705.959.881.058.285.969.449.495.136.382.746.624
128 2.854.495.385.411.919.762.116.571.938.898.990.272.765.493.248
139One of Hoon's two string types, the other being `++cord`. A tape is a
145 ++ tape (list char) :: like a string
150 > `(list ,char)`"foobar"
152 > `(list ,@)`"foobar"
153 ~[102 111 111 98 97 114]
161The remaining part of a `++date`: day, hour, minute, second and a list
162of `@ux` for precision.
167 ++ tarp {d/@ud h/@ud m/@ud s/@ud f/(list @ux)} :: parsed time
175 ~2014.9.20..00.43.33..b52a
176 > :: the time is always in your context at -<-
178 [d=106.751.991.820.278 h=0 m=43 s=39 f=~[0x54d1]]
181 [d=20 h=0 m=0 s=0 f=~]
190A restricted text atom for Hoon constants. The only characters permitted are
191lowercase ASCII, `-`, and `0-9`, the latter two of which can neither be the first or last
192character. The syntax for `@tas` is the text itself, always preceded by `%`.
193This means a term is always cubical. The empty `@tas` has a special syntax,
200 ++ term @tas :: Hoon ASCII subset
211 [%cube p=271.101.667.197.767.630.546.276 q=[%atom p=%tas]]
218 ++ wain (list cord) :: text lines (no \n)
220A list of lines. A `++wain` is used instead of a single `++cord` with
223See also: `++lore`, `++role`
235A `++wall` is used instead of a single `++tape` with
241 ++ wall (list tape) :: text lines (no \n)
248 > `wall`(wash [0 20] leaf+<(bex 256)>)
250 "115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list