+$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
> axis
7
> `@ub`axis
0b111
> =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
> *noun
0
> `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 authority
type=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" ~]
==
foo
bar
(!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"
"\\/ \\/"
>>