Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions content/hoon/stdlib/1a.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ A cell of `$atom`s.

```hoon
++ dvr
~/ %dvr
|: [a=`@`1 b=`@`1]
^- [p=@ q=@]
~_ leaf+"divide-by-zero"
Expand Down
22 changes: 8 additions & 14 deletions content/hoon/stdlib/2b.md
Original file line number Diff line number Diff line change
Expand Up @@ -1560,13 +1560,10 @@ A `+list`.
```hoon
++ welp
~/ %welp
=| [* *]
|@
++ $
?~ +<-
+<-(. +<+)
+<-(+ $(+<- +<->))
--
|* [* *]
?~ +<-
+<-(. +<+)
+<-(+ $(+<- +<->))
```

#### Examples
Expand Down Expand Up @@ -1611,13 +1608,10 @@ A `+list`.
```hoon
++ zing
~/ %zing
=| *
|@
++ $
?~ +<
+<
(welp +<- $(+< +<+))
--
|* *
?~ +<
+<
(welp +<- $(+< +<+))
```

#### Examples
Expand Down
32 changes: 15 additions & 17 deletions content/hoon/stdlib/2e.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,53 +101,51 @@ An atom.
#### Source

```hoon
++ muk :: standard murmur3
~% %muk ..muk ~
=+ ~(. fe 5)
++ muk
~/ %muk
|= [syd=@ len=@ key=@]
^- @
=+ ~(. fe 5)
=. syd (end 5 syd)
=/ pad (sub len (met 3 key))
=/ data (weld (rip 3 key) (reap pad 0))
=/ nblocks (div len 4) :: intentionally off-by-one
=/ nblocks (div len 4)
=/ h1 syd
=+ [c1=0xcc9e.2d51 c2=0x1b87.3593]
=/ blocks (rip 5 key)
=/ i nblocks
=. h1 =/ hi h1 |-
?: =(0 i) hi
=/ k1 (snag (sub nblocks i) blocks) :: negative array index
=/ k1 (cut 5 [(sub nblocks i) 1] key)
=. k1 (sit (mul k1 c1))
=. k1 (rol 0 15 k1)
=. k1 (sit (mul k1 c2))
=. hi (mix hi k1)
=. hi (rol 0 13 hi)
=. hi (sum (sit (mul hi 5)) 0xe654.6b64)
$(i (dec i))
=/ tail (slag (mul 4 nblocks) data)
=/ tail (rsh [3 (mul 4 nblocks)] key)
=/ k1 0
=/ tlen (dis len 3)
=. h1
?+ tlen h1 :: fallthrough switch
%3 =. k1 (mix k1 (lsh [0 16] (snag 2 tail)))
=. k1 (mix k1 (lsh [0 8] (snag 1 tail)))
=. k1 (mix k1 (snag 0 tail))
?+ tlen h1
%3 =. k1 (mix k1 (lsh [0 16] (cut 3 [2 1] tail)))
=. k1 (mix k1 (lsh [0 8] (cut 3 [1 1] tail)))
=. k1 (mix k1 (cut 3 [0 1] tail))
=. k1 (sit (mul k1 c1))
=. k1 (rol 0 15 k1)
=. k1 (sit (mul k1 c2))
(mix h1 k1)
%2 =. k1 (mix k1 (lsh [0 8] (snag 1 tail)))
=. k1 (mix k1 (snag 0 tail))
%2 =. k1 (mix k1 (lsh [0 8] (cut 3 [1 1] tail)))
=. k1 (mix k1 (cut 3 [0 1] tail))
=. k1 (sit (mul k1 c1))
=. k1 (rol 0 15 k1)
=. k1 (sit (mul k1 c2))
(mix h1 k1)
%1 =. k1 (mix k1 (snag 0 tail))
%1 =. k1 (mix k1 (cut 3 [0 1] tail))
=. k1 (sit (mul k1 c1))
=. k1 (rol 0 15 k1)
=. k1 (sit (mul k1 c2))
(mix h1 k1)
==
=. h1 (mix h1 len)
=. h1 (mix h1 (end 5 len))
|^ (fmix32 h1)
++ fmix32
|= h=@
Expand Down
65 changes: 29 additions & 36 deletions content/hoon/stdlib/2h.md
Original file line number Diff line number Diff line change
Expand Up @@ -530,22 +530,19 @@ A `+set`.
```hoon
++ int
~/ %int
=+ b=a
|@
++ $
|- ^+ a
?~ b
~
?~ a
~
?. (mor n.a n.b)
$(a b, b a)
?: =(n.b n.a)
a(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (gor n.b n.a)
%- uni(a $(a l.a, r.b ~)) $(b r.b)
%- uni(a $(a r.a, l.b ~)) $(b l.b)
--
|* b=_a
|- ^+ a
?~ b
~
?~ a
~
?. (mor n.a n.b)
$(a b, b a)
?: =(n.b n.a)
a(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (gor n.b n.a)
%- uni(a $(a l.a, r.b ~)) $(b r.b)
%- uni(a $(a r.a, l.b ~)) $(b l.b)
```

#### Examples
Expand Down Expand Up @@ -767,25 +764,22 @@ A `+set`.
```hoon
++ uni
~/ %uni
=+ b=a
|@
++ $
?: =(a b) a
|- ^+ a
?~ b
a
?~ a
b
?: =(n.b n.a)
b(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (mor n.a n.b)
?: (gor n.b n.a)
$(l.a $(a l.a, r.b ~), b r.b)
$(r.a $(a r.a, l.b ~), b l.b)
?: (gor n.a n.b)
$(l.b $(b l.b, r.a ~), a r.a)
$(r.b $(b r.b, l.a ~), a l.a)
--
|* b=_a
?: =(a b) a
|- ^+ a
?~ b
a
?~ a
b
?: =(n.b n.a)
b(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (mor n.a n.b)
?: (gor n.b n.a)
$(l.a $(a l.a, r.b ~), b r.b)
$(r.a $(a r.a, l.b ~), b l.b)
?: (gor n.a n.b)
$(l.b $(b l.b, r.a ~), a r.a)
$(r.b $(b r.b, l.a ~), a l.a)
```

#### Examples
Expand Down Expand Up @@ -828,7 +822,6 @@ An `$atom`.
~% %wyt + ~
|. ^- @
?~(a 0 +((add $(a l.a) $(a r.a))))
--
```

#### Examples
Expand Down
110 changes: 50 additions & 60 deletions content/hoon/stdlib/2i.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ Container arm for `+map` operation arms. A `+map` is a `+set` of key-value pairs
++ by
~/ %by
=| a=(tree (pair)) :: (map)
=* node ?>(?=(^ a) n.a)
|@
```

Expand Down Expand Up @@ -704,26 +703,23 @@ A `+map`.
```hoon
++ int
~/ %int
=+ b=a
|@
++ $
|- ^+ a
?~ b
~
?~ a
~
?: (mor p.n.a p.n.b)
?: =(p.n.b p.n.a)
b(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (gor p.n.b p.n.a)
%- uni(a $(a l.a, r.b ~)) $(b r.b)
%- uni(a $(a r.a, l.b ~)) $(b l.b)
?: =(p.n.a p.n.b)
b(l $(b l.b, a l.a), r $(b r.b, a r.a))
?: (gor p.n.a p.n.b)
%- uni(a $(b l.b, r.a ~)) $(a r.a)
%- uni(a $(b r.b, l.a ~)) $(a l.a)
--
|* b=_a
|- ^+ a
?~ b
~
?~ a
~
?: (mor p.n.a p.n.b)
?: =(p.n.b p.n.a)
b(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (gor p.n.b p.n.a)
%- uni(a $(a l.a, r.b ~)) $(b r.b)
%- uni(a $(a r.a, l.b ~)) $(b l.b)
?: =(p.n.a p.n.b)
b(l $(b l.b, a l.a), r $(b r.b, a r.a))
?: (gor p.n.a p.n.b)
%- uni(a $(b l.b, r.a ~)) $(a r.a)
%- uni(a $(b r.b, l.a ~)) $(a l.a)
```

#### Examples
Expand Down Expand Up @@ -1179,24 +1175,21 @@ A `+map`.
```hoon
++ uni
~/ %uni
=+ b=a
|@
++ $
|- ^+ a
?~ b
a
?~ a
b
?: =(p.n.b p.n.a)
b(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (mor p.n.a p.n.b)
?: (gor p.n.b p.n.a)
$(l.a $(a l.a, r.b ~), b r.b)
$(r.a $(a r.a, l.b ~), b l.b)
?: (gor p.n.a p.n.b)
$(l.b $(b l.b, r.a ~), a r.a)
$(r.b $(b r.b, l.a ~), a l.a)
--
|* b=_a
|- ^+ a
?~ b
a
?~ a
b
?: =(p.n.b p.n.a)
b(l $(a l.a, b l.b), r $(a r.a, b r.b))
?: (mor p.n.a p.n.b)
?: (gor p.n.b p.n.a)
$(l.a $(a l.a, r.b ~), b r.b)
$(r.a $(a r.a, l.b ~), b l.b)
?: (gor p.n.a p.n.b)
$(l.b $(b l.b, r.a ~), a r.a)
$(r.b $(b r.b, l.a ~), a l.a)
```

#### Examples
Expand Down Expand Up @@ -1240,27 +1233,24 @@ A `+map`.

```hoon
++ uno
=+ b=a
|@
++ $
|= meg=$-([_p:node _q:node _q:node] _q:node)
|- ^+ a
?~ b
a
?~ a
b
?: =(p.n.b p.n.a)
:+ [p.n.a (meg p.n.a q.n.a q.n.b)]
$(b l.b, a l.a)
$(b r.b, a r.a)
?: (mor p.n.a p.n.b)
?: (gor p.n.b p.n.a)
$(l.a $(a l.a, r.b ~), b r.b)
$(r.a $(a r.a, l.b ~), b l.b)
?: (gor p.n.a p.n.b)
$(l.b $(b l.b, r.a ~), a r.a)
$(r.b $(b r.b, l.a ~), a l.a)
--
|* b=_a
|* meg=$-([* * *] *)
|- ^+ a
?~ b
a
?~ a
b
?: =(p.n.b p.n.a)
:+ [p.n.a `_?>(?=(^ a) q.n.a)`(meg p.n.a q.n.a q.n.b)]
$(b l.b, a l.a)
$(b r.b, a r.a)
?: (mor p.n.a p.n.b)
?: (gor p.n.b p.n.a)
$(l.a $(a l.a, r.b ~), b r.b)
$(r.a $(a r.a, l.b ~), b l.b)
?: (gor p.n.a p.n.b)
$(l.b $(b l.b, r.a ~), a r.a)
$(r.b $(b r.b, l.a ~), a l.a)
```

#### Examples
Expand Down
17 changes: 7 additions & 10 deletions content/hoon/stdlib/2n.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,9 @@ This is the inverse of [`+cork`](#cork).
```hoon
++ corl
|* [a=$-(* *) b=$-(* *)]
=< +:|.((a (b))) :: type check
=+ c=+<.b
|@ ++ $ (a (b c))
--
=< +:|.((a (b)))
|* c=_,.+<.b
(a (b c))
```

#### Examples
Expand Down Expand Up @@ -144,9 +143,8 @@ A gate.
```hoon
++ curr
|* [a=$-(^ *) c=*]
=+ b=+<+.a
|@ ++ $ (a b c)
--
|* b=_,.+<-.a
(a b c)
```

#### Examples
Expand Down Expand Up @@ -184,9 +182,8 @@ A gate.
```hoon
++ cury
|* [a=$-(^ *) b=*]
=+ c=+<+.a
|@ ++ $ (a b c)
--
|* c=_,.+<+.a
(a b c)
```

#### Examples
Expand Down
8 changes: 4 additions & 4 deletions content/hoon/stdlib/3b.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,10 @@ Produces either a float (`%f`), an infinity of other sign (`%i`), or not-a-numbe

```hoon
++ fn
$% [%f s=? e=@s a=@u]
[%i s=?]
[%n ~]
==
$% [%f s=? e=@s a=@u]
[%i s=?]
[%n ~]
==
```

#### Examples
Expand Down
Loading