+$axis
Tree address
A Nock axis inside a noun. After the leading 1, in binary, a 1
signfies right and 0
left.
Source
+$ axis @
Examples
> =axis `axis`7> axis7> `@ub`axis0b111> =noun [[4 5] [6 14 15]]> .*(noun [0 axis])[14 15]
+$bean
Boolean
0
, &
, or %.y
are true, and 1
, |
, and %.n
are false.
Note 1 is false and 0 is true. This is sometimes referred to as "loobean".
Source
+$ bean ?
Examples
> *bean%.y
> `bean`&%.y
> `bean`|%.n
+$flag
Boolean
Same as $bean.
Source
+$ flag ?
+$char
Character
A single @t
character.
Source
+$ char @t
Examples
> *char''
> `char`'a''a'
+$cord
UTF-8 text
One of Hoon's two string types (the other being tape
). A cord is an atom of UTF-8 text.
Source
+$ cord @t
Examples
> *cord''> `@ux`'foobar'0x7261.626f.6f66> `@t`97'a'> `@`'urbit'499.984.265.845> `@t`499.984.265.845'urbit'
Discussion
Aura @t
designates a Unicode atom, little-endian: the first character in the text is the least-significant byte.
trip
converts from cord
to tape
, and crip
converts from tape
to cord
.
+$byts
bytes, LSB first
An atom dat
with its byte-length specified in wid
. This is to handle leading zeros that are typically ignored.
Source
+$ byts [wid=@ud dat=@]
Examples
> *byts[wid=0 dat=0]
> =a `byts`[4 2]> a[wid=4 dat=2]> `@ux`(rev 3 a)0x200.0000
+$date
Parsed date
A boolean designating AD or BC, a year atom, a month atom, and a tarp
, which is a day atom and a time.
Source
+$ date [[a=? y=@ud] m=@ud t=tarp]
Examples
> *date[[a=%.y y=0] m=0 t=[d=0 h=0 m=0 s=0 f=~]]> `date`(yore ~2014.6.6..21.09.15..0a16)[[a=%.y y=2.014] m=6 t=[d=6 h=21 m=9 s=15 f=~[0xa16]]]> now~2018.5.25..17.55.15..9ad8
Discussion
+$knot
ASCII text
An atom type that only permits ASCII characters.
Source
+$ knot @ta
Examples
> *knot~.> `@ta`105~.i
+$noun
Any noun
Source
+$ noun *
Examples
> *noun0
> `noun`'foo'7.303.014
> `noun`"foo"[102 111 111 0]
+$path
Like unix path
A path is a list of $knot
.
Source
+$ path (list knot)
Examples
> *path/
> `path`"foo"/f/o/o
> `path`[~.foo ~.bar ~.baz ~]/foo/bar/baz
+$stud
Standard name
Source
+$ stud :: standard name$@ mark=@tas :: auth=urbit$: auth=@tas :: standards authoritytype=path :: standard label== ::
+$tang
Bottom-first error
A list of tank
s. It's for printing types and bottom-up printing of stack traces.
Source
+$ tang (list tank)
Examples
> *tang~
> %- %- slog^- tang:~ 'foo'leaf+"bar"[%palm ["|" "(" "!" ")"] leaf+"foo" leaf+"bar" leaf+"baz" ~][%rose [" " "[" "]"] leaf+"foo" leaf+"bar" leaf+"baz" ~]==foobar(!foo|bar|baz)[foo bar baz]~~
+$tank
Formatted print tree
A tank
is one of four cases:
- just a
cord
. %leaf
is just atape
.%palm
is a list oftank
delimited by the strings inp
, with back-steps at new lines.%rose
is a list oftank
delimited by the strings inp
without back-steps at new lines.
Source
+$ tank$~ leaf/~$@ cord$% [%leaf p=tape][%palm p=(qual tape tape tape tape) q=(list tank)][%rose p=(trel tape tape tape) q=(list tank)]==
Examples
> *tank[%leaf p=""]
> ~(ram re 'foobar')"foobar"
> ~(ram re leaf+"foo")"foo"
> ~(ram re [%palm ["|" "(" "!" ")"] leaf+"foo" leaf+"bar" leaf+"baz" ~])"(!foo|bar|baz)"
> ~(ram re [%rose [" " "[" "]"] leaf+"foo" leaf+"bar" leaf+"baz" ~])"[foo bar baz]"
+$tape
List of characters
One of Hoon's two string types, the other being +cord
. A tape is a list of @tD
.
Source
+$ tape (list @tD)
Examples
> *tape""> `tape`"foobar""foobar">`(list @t)`"foobar"<|f o o b a r|>>`(list @tD)`"foobar""foobar"> `(list @)`"foobar"~[102 111 111 98 97 114]
+$tour
UTF-32 clusters
A tour
is a list of UTF-32 characters.
Source
+$ tour (list @c)
Examples
> *tour~
> `tour`(tuba "foobar")~[~-f ~-o ~-o ~-b ~-a ~-r]
+$tarp
Parsed time
The time component of a date
: day, hour, minute, second and a list of @ux
for precision.
Source
+$ tarp [d=@ud h=@ud m=@ud s=@ud f=(list @ux)]
Examples
> *tarp[d=0 h=0 m=0 s=0 f=~]> (yell now)[d=106.751.991.821.625 h=22 m=58 s=10 f=~[0x44ff]]> `tarp`(yell ~2014.6.6..21.09.15..0a16)[d=106.751.991.820.172 h=21 m=9 s=15 f=~[0xa16]]> (yell ~d20)[d=20 h=0 m=0 s=0 f=~]
+$term
Hoon constant
A restricted text atom for Hoon constants. The only characters permitted are lowercase ASCII letters, -
, and 0-9
, the latter two of which cannot be the first character. The syntax for @tas
is the text itself, always preceded by %
. The empty @tas
has a special syntax, $
.
Source
+$ term @tas
Examples
> *term%$> *%term%term> %dead-fish9%dead-fish9> -:!>(%dead-fish9)#t/%dead-fish9> -:!>(`@tas`%dead-fish9)#t/@tas
+$wain
List of strings
A list of cord
s. A wain
is used instead of a single cord
with \n
.
Source
+$ wain (list cord)
Examples
> *wain<||>> `wain`/som/del/rok<|som del rok|>
+$wall
List of list of characters
A list of tape
s. wall
is used instead of a single tape
with \n
.
Source
+$ wall (list tape)
Examples
> *wall<<>>> `wall`(wash [0 20] leaf+<(bex 256)>)<<"\\/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""\\/ \\/">>